1 changed files with 211 additions and 0 deletions
-
211TODO-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 |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue