blob: f8979e2d61fe4a40ee8b9f31302e6c836c0f2bea [file] [log] [blame]
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