php-src / TODO

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.
    * create typedefs for all kinds of callback functions - this would make
      casting easier. eg: zend_hash_apply(someht,(zend_apply_f) bla);

global
------
    * let every module (source-file) have it's own module & function_entry 
      block. Right now the math functions are in math.c but the corresponding
      function-entries are in basic_functions.
    * 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
    * there is only one current directory per process; to make
      chdir() etc. thread-safe, we must introduce a per-thread
      current directory
    * on some platforms unimplemented function will just do nothing (eg symlink)
      they should print a warning or be not even defined!
    * banish the legacy of php3_ prefixes
    * 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.

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/wddx
--------
	* implement wddx_packet_as_javascript(). (Andrei)

ext/oci8
--------
    * all OCIFetch*() functions should return 0 for no more data and false on error.

ext/standard
------------
    * implement pathinfo()
    * 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)
    * stri_replace() (Andrei)
    * comparing arrays semantically (like Python) (Andrei)
    * move socket related functions to fsock.c
    * NOT binary safe:
        strtok()
        basename()
        dirname()
        strrpos()
        strrchr()
        strip_tags()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.