Things to do or at least think about doing in the future. Name in parenthesis means that person has taken on this project. Zend ---- * allow foreach ($array as $k => &$val) syntax. right now we can not traverse an array without copying each element. * look al replacing c-lib call tolower(). global ------ * make sure all source files have the "right" copyright. * the following modules still use PHP3_TLS_*() macros (and thereby don't work in ZTS mode): ext/dav/dav.c, ext/db/db.c, ext/gd/gd.c, ext/ldap/ldap.c * make sure that all ZTS globals get destructed. Most ts_allocate_id() calls should have a dtor entry. * activate all extensions by default that don't rely on external dependices. (eg ftp) * --enable-all in configure. (--enable-shared=max ...) * make configure print out a summary when it's done (like XEmacs) * replace standard functions which work on static data with reentrant-save functions * on some platforms unimplemented function will just do nothing (eg symlink) they should print a warning or be not even defined! * implement javadoc based function docs template system * use thread-safe resolver functions (either require BIND 8 or adns) * provide optional IPv6 support * make SAPI conform to CGI/1.1. Currently, all SAPI modules define REMOTE_ADDR etc. themselves and reach only various level of compliance. * find a better way to implement script timeouts. SIGVTALRM is used by some POSIX threads implementations (i.e. OpenBSD) and is not available in ZTS mode. documentation ------------- * add remarks in the documentation which functions are not implemented on win32. * add remarks in the documentation which functions are not binary-safe. ext/pcre -------- * have a non-greedy option for preg_replace() * have an option for preg_grep() to return keys as well ext/wddx -------- * See if we can support the remaining datatypes: dateTime binary recordset http://www.wddx.org/WDDX_SDK_10a/7__References/WDDX_DTD.htm (Andrei) * implement wddx_packet_as_javascript(). (Andrei) ext/dav -------- * rewrite ext/oci8 -------- * all OCIFetch*() functions should return 0 for no more data and false on error. ext/mcrypt ---------- * port to mcrypt-2.6 or later ext/standard ------------ * add a version number to data serialized via serialize(). * array_add(), array_rand() (Andrei) * implement pathinfo() (what the heck is it?) * possibly modify parsing of GPC data to automatically create arrays if variable name is seen more than once. * implement regex-cache for url-functions. * strpad() (Andrei) * strcase_replace() (Andrei) * comparing arrays semantically (like Python) (Andrei) * move socket related functions to fsock.c * add third parameter to fseek() to indicate where to seek from * NOT binary safe: strtok() basename() dirname() strrpos() strrchr() strip_tags() other cool stuff ---------------- * PVM extension