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