Roadmap ======= - Issues for 1.0 - Dependency Injection (Falko) - Write tests for wrapper methods - Write documentation of the methods introduced for the dependency injection mechanism - Add a comment about their purpose to the wrapper methods: This method makes it easier to extend this class and improves the documentation of the ezcReflection component. enables Dependency Injection (only in case of static methods) - Documentation about available annotations (?) (see https://instantsvc.svn.sourceforge.net/svnroot/instantsvc/branches/transition/doc/style-guide.html) - Tutorial (?) - Complete the adoption of the eZ Components coding standard - Optional Features for 1.0 - Add methods isBoolean(), isCallback(), isFloat(), isInteger(), isNull(), isNumber(), isResource(), isString(), isCompoundType(), isSpecialType(), isPseudoType() to ezcReflectionType - Have ezcReflectionParameter::__construct() search for the parameter type annotation in the DocBlock of the function or method - Parse comments on demand to save CPU time and memory, when creating large amounts of reflection objects - Introduce a ezcReflectionReflector interface - Add support for pipe notation in type definitions, i.e. @param datatype1|datatype2 $paramname description - support for annotation grouping especially for properties (has to be supported by PHP, maybe a feature for StaticReflection) - obtain type information for internal functions from PHP's source code - Integration of Toby's annotation parser? (Toby?) - Add ezcReflectionParameter::getDescription() and ezcReflectionProperty::::getDescription() - Add ezcReflectionType::isString(), ezcReflectionType::isBoolean(), ezcReflectionType::isInteger(), ezcReflectionType::isFloat(), ezcReflectionType::isVoid()(), ezcReflectionType::isMixed() - Throw an ezcReflectionNewerPhpVersionRequiredException in methods that require a PHP version greater than 5.2.0 - Make XML name prefixes configurable - Support maps as keys of maps - See todo annotations in the source code, e.g., using 'grep -inor todo.* --exclude-dir=.svn .' - Support white space in map type names, e.g., array(integer => array(integer => string)) - Support @throws Depending Projects ================== - ezcWsdl based on ezcReflection - Can PHPT tests from the SOAP extension be reused? - StaticReflection (an implementation of PHP's Reflection API using static source code analysis) - Parser which generates objects implementing ReflectionAPI - Reuse phuml parser? - open issues? - Reuse function/method body parser from phpDepend or phpCallGraph? - API Design for additional features StaticReflection - Call and Dependency Analysis (e.g. getCallers, getCallees, getAccessedProperties, getAccessedSqlTables) - Code Generation (e.g. save) - Code Editing (e.g. addProperty, addMethod, addParameter, setCode, setName, copy, delete) - Refactoring (e.g. setParentClass, emancipate, moveToParent) - XMI Export (could perhaps go into ezcReflection) - StaticReflection objects should be able to be created through - Source code (static analysis of the files) - (ezc)Reflection objects - Manually calling API methods - XMI import