summaryrefslogtreecommitdiff
path: root/TODO-PHP5
diff options
context:
space:
mode:
authorSebastian Bergmann <sebastian@php.net>2003-01-23 23:22:01 +0000
committerSebastian Bergmann <sebastian@php.net>2003-01-23 23:22:01 +0000
commit459fb4f3195395430670c5919b9e6bee7ece2428 (patch)
treee6508d9799c7f59cfaed5895e7b892f373056753 /TODO-PHP5
parentcfbd0bb58a32da87f3b422c3167d229b21cf684c (diff)
downloadphp-git-459fb4f3195395430670c5919b9e6bee7ece2428.tar.gz
TODO for PHP 5.
Diffstat (limited to 'TODO-PHP5')
-rw-r--r--TODO-PHP5211
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