diff options
author | Sebastian Bergmann <sebastian@php.net> | 2003-01-23 23:22:01 +0000 |
---|---|---|
committer | Sebastian Bergmann <sebastian@php.net> | 2003-01-23 23:22:01 +0000 |
commit | 459fb4f3195395430670c5919b9e6bee7ece2428 (patch) | |
tree | e6508d9799c7f59cfaed5895e7b892f373056753 /TODO-PHP5 | |
parent | cfbd0bb58a32da87f3b422c3167d229b21cf684c (diff) | |
download | php-git-459fb4f3195395430670c5919b9e6bee7ece2428.tar.gz |
TODO for PHP 5.
Diffstat (limited to 'TODO-PHP5')
-rw-r--r-- | TODO-PHP5 | 211 |
1 files changed, 211 insertions, 0 deletions
diff --git a/TODO-PHP5 b/TODO-PHP5 new file mode 100644 index 0000000000..92caa2d265 --- /dev/null +++ b/TODO-PHP5 @@ -0,0 +1,211 @@ +Component: Zend Engine 2 + + Important stuff to finish: PPP members/PPP methods, + support of overloaded extensions, possibly differentiate + between class and namespace as discussed with Stig in + Germany. +Responsibility: Zeev, Andi, Stas +Time frame: Couple of months for first part and extensions will be + ongoing while PHP is being fixed. + Things to leave for later versions: Native aggregation + support, accessing static members via object and not class. + + +Component: Aggregation +Responsibility: Andi, Stig? +Time frame: ? + + +Component: Introspection + + get_function_definition(<is_callable> [field]) => + array( + file => filename + line_start => + line_end => + parameters => array( name, byref, default ) + static_variables => array( name, value/default ) + scope => 'namespace' | 'class' | null + namespace => classname | namespacename | 'main' + protection => protection_flags + phpdoc => pre-scanned-phpdoc-string + type => 'internal' | 'user' + ) + + get_class_definition(<class> [field]) => + array( + type => 'internal' | 'user' + file => filename + line_start => + line_end => + name => pretty-name + parent => classname | namespace | null + flags => bitfield (ABSTRACT) + methods => array( array( name, phpdoc ) ) + default_properties => array( array( name, value, phpdoc ) ) + private_properties => array( array( name, value, phpdoc ) ) + protected_properties => array( array( name, value, phpdoc ) ) + public_properties => array( array( name, value, phpdoc ) ) + static_members => array( array( name, value, phpdoc ) ) + constants => array( array( name, value, phpdoc ) ) + classes => array( array( name, phpdoc ) ) + phpdoc => pre-scanned-phpdoc-string + ) + + get_constant_definition(<constant> [field]) => + array( + file => filename + line_start => + line_end => + name => + value => + phpdoc => + ) + + get_global_variable_defintion(<name> [field]) => + array( + file => + line_start => + line_end => + name => + phpdoc => + ) + + We tried to take into account the implementation of each piece of + information, and there are some that are problematic, especially those + regarding constants and global variables (where do we store the extra + information?) + + With "pre-scanned-phpdoc-string" we mean converting: + + /** + * Blah blah blah + * @param foo ... + */ + + to: + + Blah blah blah + @param foo + + The rest of the phpdoc handling should be left to an extension. +Responsibility: Stig, Andrei, Harald +Time frame: ? + + +Component: Redesign of API Versioning +Responsibility: ? +Time frame: 1 month + + +Component: Thread Safety + Identify the extensions that are not thread safe by design + or due to dependant libraries and identify them as such. + If possible try to resolve thread safety issue via code + improvements (if php code or patches will be accepted by + library maintainers). For situations where thread safety + cannot easily be acheived a flag in the extension API is + set so PHP can identify non-thread safe extensions. These + extensions will not be loaded in a ZTS compiled binary + (unless it is cli/cgi). + +Responsibility: ? +Time frame: ? + + +Component: SAPI + Environment variables defined in the CGI spec need to be + verified in each SAPI module that they conform to the CGI + spec correctly. If they do not, the SAPI module needs to + fix the variable prior to script execution. Having this + conformity will aid in having PHP scripts run correctly + under different sapi modules. + +Responsibility: Shane Caraveo & each sapi module owner +Timeframe: ? (but shouldn't be much effort, most modules are probably ok) + + +Component: Input Filtering + - Implement a SAPI input filter hook that will get called + just before registering a variable in the + treat_data/post_handler hooks. + - Make sure this is also done in mbstring + - Provide access functions, or perhaps a new + $_RAW_GET/POST/Cookie set of superglobals to get at the + unfiltered data + - Provide a .ini directive which allows people to set their + input filter to one of the built-in strip_tags, + htmlspecialchars or whatever other internal function might + be useful here. + - (The main benefit of this is to make it easier for people + to solve the XSS problem once and for all without having + to go through every line of their code and adding input + validation/filtering everywhere) +Responsibility: Rasmus +Timeframe: Yesterday + + +Component: RPC Abstraction Layer + Porting java, com, dotnet, xmlrpc, corba, soap and python, srm + (are there more ?) to work with the new oo api and preferably + by using ext/rpc. +Responsibility: Harald +Time frame: 2 months (but i have to wait for a few engine features first) + + +Component: OO Extensions + Each OO extension has to be revised and rewritten to fit into + the new OO model. We should decide which extensions are a must + to have for the release and which can be ported by the maintainer + later as a separate pecl release. + A list of extensions to be extended that have to be investigated: + * browscap + * aggregate + * all *sql extensions (*_fetch_object) + * domxml (seems like christian is rewriting it anyways) + * ming +Responsibility: Harald (, extension maintainers) + + +Component: Abstract Data Types (ADT) +Responsibility: Sterling, Harald +Time frame: ? + + +Component: MySQL Extension + Complete rewrite, leveraging the new MySQL 4 / MySQL 5 + features. +Responsibility: Georg Richter, Zak Greant +Timeframe: ? + + +Component: XML + - Rewrite DOMXML and incorporate all (or most of) W3C-DOM2. + - Use the new ZE2 features (Exceptions, setter/getter). + - Add SAX(2), XML Schema. + - XSLT, HTML, XPath, XPointer, DTD Validation will still be + supported, have to find a meaningful API for it. + - Break BC, warn users now. + - Look at the libxml2 patch by lukas schröder and see if we can prevent + memory leaks with it (anyway, getting rid of mem-leaks and intelligent + memory management is on top prio...) + - In the longer term, domxml (or another name, as with todays features + domxml is a little bit misleading) shall be the main xml-class, which + covers most of what's needed for decent XML support in PHP ;) + But there is certainly place for others like Sablotron etc. +Responsibility: Christian Stocker +Timeframe: ? + + +Component: Test Suite + Extending the test suite with atleast a test for every + function in an extension that doesn't require external + resources. Also developing an automated test thing which + cvs ups's, compiles and tests the build on a daily base on + as much platforms/extensions as possible. + + The test suite will also be extended to support threaded + testing and testing for differing sapi modules (via http + calls or other methods). +Reponsibility: Derick (, extension maintainers) +Time frame: 3 months |