File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / TODO
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:47:51 2012 UTC (12 years, 3 months ago) by misho
Branches: php, MAIN
CVS tags: v5_3_10, HEAD
php

    1: Things to do or at least think about doing in the future. Name in
    2: parenthesis means that person has taken on this project.
    3: 
    4: Zend
    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: 
   16: global
   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: 
   44: Streams
   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: 
   58: documentation
   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: 
   67: ext/curl
   68: --------
   69:     * Have a warning scheme for when people use unsupported features.
   70: 
   71: ext/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: 
   79: ext/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: 
   89: ext/pcre
   90: --------
   91:     * Allow user to set PCRE_NOTEMPTY, PCRE_ANCHORED at execution time, maybe
   92: 
   93: ext/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: 
   99: ext/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: 
  114: ext/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: 
  122: ext/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: 
  132: other cool stuff
  133: ----------------
  134:     * PVM extension
  135: 
  136: vim:et:sw=4:ts=4

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>