xref: /PHP-5.3/TODO (revision 01b0f9d4)
1Things to do or at least think about doing in the future. Name in
2parenthesis means that person has taken on this project.
3
4Zend
5----
6    * Allow foreach ($array as $k => list($a, $b)) syntax for multi
7      dimensional arrays.
8    * Look at replacing c-lib call tolower().
9    * Make hash API functions work with HASH_OF() to save time.
10    * Native large number support (probably with GNU GMP)
11    * Const'ify APIs. Right now, many functions leave parameters untouched,
12      but don't declare those as const. This makes interaction with other
13      interfaces difficult which pass const parameters to us.
14
15
16global
17------
18    * Make sure that all ZTS globals get destructed. Most ts_allocate_id()
19      calls should have a dtor entry.
20    * on some platforms unimplemented function will just do nothing
21      (e.g. symlink) they should print a warning or not even be defined!
22      (DONE ?)
23    * --enable-all in configure. (--enable-shared=max ...)
24    * make configure print out a summary when it's done (like XEmacs)
25    * replace standard functions which work on static data with
26      reentrancy-safe functions (DONE?).
27    * make SAPI conform to CGI/1.1. Currently, all SAPI modules
28      define REMOTE_ADDR etc. themselves and reach only various level
29      of compliance.
30    * see what functions might need to be changed to use HashPosition, so
31      that the internal array pointer is not affected.
32    * Move most extensions and PEAR packages out of the PHP CVS tree,
33      include them again during release packaging.
34
35    Other
36    * use thread-safe resolver functions (either require BIND 8 or adns).
37    * implement javadoc based function docs template system.
38    * provide optional IPv6 support (seems to be done?).
39    * find a better way to implement script timeouts. SIGVTALRM is used
40      by some POSIX threads implementations (i.e. OpenBSD) and is not
41      available in ZTS mode.
42    * Implement flush feature suitable for nested output buffers.
43
44Streams
45-------
46    * Route filestat.c through the wrapper layer; isolate the statcache code
47      so that it is independent of php functions and can be applied to any
48      stream/path.
49    * Implement generalized connection pool for stated protocols such as
50      ftp and http/1.1 (using keep-alive) to avoid having to negotiate
51      new command/request stream for each subsequent call; Possibly store
52      resources in contexts (creating a default context if necessary) to
53      allow segmentation of connection pools.
54    * Add a method to take ownership of the memory buffer in memory streams so
55      that generating string values for zvals doesn't require an estrdup.
56    * bundle and use curl lib for fopen wrapper.
57
58documentation
59-------------
60    * Add remarks in the documentation which functions are not implemented
61      on win32.
62    * Add remarks in the documentation which functions are not binary-safe.
63    * Update curl documentation (DONE?)
64    * Add developer documentation.
65    * Add detailed documentation for Java extension.
66
67ext/curl
68--------
69    * Have a warning scheme for when people use unsupported features.
70
71ext/oci8
72--------
73    * All OCIFetch*() functions should return 0 for no more data and false on
74      error.
75    * Have a flag that trims trailing spaces from CHAR fields on retrieval.
76    * Make allow_call_time_pass_reference=Off working.
77    * For additional todo information, see oci8.c, in ext/oci8
78
79ext/odbc
80--------
81    For PHP 4.3.0:
82    * update all php_error calls to php_error_docref where valid
83    * integrate EXPERIMENTAL ODBC update for use in PHP 5.0, use for
84      testing purposes only.
85
86    For PHP 5.0.0
87    * Activate EXPERIMENTAL ODBC codebase update
88
89ext/pcre
90--------
91    * Allow user to set PCRE_NOTEMPTY, PCRE_ANCHORED at execution time, maybe
92
93ext/pcntl
94---------
95    * Change internal callback handler to use TICKS
96    * Remove all zend_extension code
97    * Add object callback support to pcntl_signal()
98
99ext/session
100-----------
101    For PHP 4.3.0:
102    * session_abort() to abort session. ie: Do not save session data.
103    * Allow unset($_SESSION) or unset($HTTP_SESSION_VARS) to unset
104      session vars regardless of register_globals setting.
105
106    Other:
107    * Maybe implement finer-grained session variables that could be
108      locked individually.
109    * Write a network-transparent storage back-end with fallover
110      facilities
111    * Provide a callback facility which is executed upon encountering
112      an unknown class name during deserialization
113
114ext/standard
115------------
116    * Add a version number to data serialized via serialize().
117    * Possibly modify parsing of GPC data to automatically create arrays if
118      variable name is seen more than once.
119    * Implement regex-cache for url-functions.
120    * Move socket related functions to fsock.c.
121
122ext/wddx
123--------
124    * See if we can support the remaining data types:
125        binary
126
127        http://www.wddx.org/WDDX_SDK_10a/7__References/WDDX_DTD.htm
128        (Andrei)
129
130    * implement wddx_packet_as_javascript(). (Andrei)
131
132other cool stuff
133----------------
134    * PVM extension
135
136vim:et:sw=4:ts=4
137