<slide title="PHP5 TODO">
<list title="Zend Engine 2">
<bullet>Important stuff to finish: PPP members/PPP methods, 
 support of overloaded extensions, possibly differentiate 
 between class and namespace as discussed with Stig in 
 Germany.</bullet>
<bullet>*Responsibility*: ~Zeev~, ~Andi~, ~Stas~</bullet>
<bullet>*Timeframe*:     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.</bullet>
</list>

<list title="Aggregation">
<bullet>*Responsibility*: ~Andi~, ~Stig~?</bullet>
<bullet>*Timeframe*:     ?</bullet>
</list>

<list title="Redesign of API Versioning">
<bullet>*Responsibility*: ?</bullet>
<bullet>*Timeframe*:     1 month</bullet>
</list>

<list title="Thread Safety">
<bullet>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).
</bullet>
<bullet>*Responsibility*: Spiderman or someone similar with superhuman powers</bullet>
<bullet>*Timeframe*:     ?</bullet>
</list>

<list title="SAPI">
<bullet>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.
</bullet>
<bullet>*Responsibility*: ~Shane Caraveo~ &amp; each sapi module owner</bullet>
<bullet>*Timeframe*:      ? (but shouldn't be much effort, most modules are probably ok)</bullet>
</list>

<list title="Input Filtering">
<bullet>Implement a SAPI input filter hook that will get called
just before registering a variable in the 
treat_data/post_handler hooks.</bullet>
<bullet>Make sure this is also done in mbstring</bullet>
<bullet>Provide access functions, or perhaps a new
$_RAW_GET/POST/Cookie set of superglobals to get at the
unfiltered data</bullet>
<bullet>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.</bullet>
<bullet>(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)</bullet>
<bullet>*Responsibility*: ~Rasmus~</bullet>
<bullet>*Timeframe*:      Yesterday</bullet>
</list>

<list title="RPC Abstraction Layer">
<bullet> 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.</bullet>
<bullet>*Responsibility*: ~Harald~</bullet>
<bullet>*Time frame*:     2 months (but i have to wait for a few engine features first)</bullet>
</list>

<list title="OO Extensions">
<bullet>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.</bullet>
<bullet>A list of extensions to be extended that have to be investigated:</bullet>
                  <bullet level="2">* browscap</bullet>
                  <bullet level="2">* aggregate</bullet>
                  <bullet level="2">* all *sql extensions (*_fetch_object)</bullet>
                  <bullet level="2">* domxml (seems like christian is rewriting it anyways)</bullet>
                  <bullet level="2">* ming</bullet>
<bullet>*Responsibility*: ~Harald~ (, extension maintainers)</bullet>
</list>

<list title="MySQL Extension">
<bullet>Complete rewrite, leveraging the new MySQL 4 / MySQL 5 features.</bullet>
<bullet>*Responsibility*: ~Georg Richter~, ~Zak Greant~</bullet>
<bullet>Timeframe:      ?</bullet>
</list>

<list title="XML">
<bullet>Rewrite DOMXML and incorporate all (or most of) W3C-DOM2.</bullet>
<bullet>Use the new ZE2 features (Exceptions, setter/getter).</bullet>
<bullet>Add SAX(2), XML Schema.</bullet>
<bullet>XSLT, HTML, XPath, XPointer, DTD Validation will still be
                  supported, have to find a meaningful API for it.</bullet>
<bullet>Break BC, warn users now.</bullet>
<bullet>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...)</bullet>
<bullet>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.</bullet>
<bullet>*Responsibility*: ~Christian Stocker~</bullet>
<bullet>*Timeframe*:      ?</bullet>
</list>

<list title="Test Suite">
<bullet>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.</bullet>

<bullet>The test suite will also be extended to support threaded
                testing and testing for differing sapi modules (via http
                calls or other methods).</bullet>
<bullet>*Reponsibility*:  ~Derick~ (, extension maintainers)</bullet>
<bullet>*Timeframe*:     3 months</bullet>
</list>
</slide>
