php-src / TODO-PHP5

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:      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:      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:      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
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.