summaryrefslogtreecommitdiff
path: root/TODO
blob: 18a669b27c41537fa7c78b11e7b947c67eae04c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
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 cannot 
      traverse an array without copying each element.
    * look at replacing c-lib call tolower().

global
------
    * make everything on the language-level independent of your locale setings.
    * always build the standalone executable as well as the chosen SAPI 
      target.
    * 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 
      reentrancy-safe functions.
    * on some platforms unimplemented function will just do nothing (e.g. symlink)
      they should print a warning or not even be 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.
    * add aliases to functions to conform to new naming conventions, e.g.
      str_to_upper().

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/dav
--------
    * rewrite.

ext/mcrypt
----------
    * port to mcrypt-2.6 or later

ext/oci8
--------
    * all OCIFetch*() functions should return 0 for no more data and false on error.
    * have a flag that trims trailing spaces from CHAR fields on retrieval.
	* make allow_call_time_pass_reference=Off working.

ext/pcre
--------
    * have a non-greedy option for preg_replace().
    * have an option for preg_grep() to return keys as well.
    * update the online docs from version 3.1 man page

ext/session
-----------
    * implement a call to set a session read-only to overcome 
      the need to serialize frame-loads.
    * maybe implement finer-grained session variables that could be 
      locked individually.

ext/standard
------------
    * add a version number to data serialized via serialize().
    * array_add(). (Andrei)
    * implement pathinfo()
        $a = pathinfo("/some/file.bla");

        => array("dirname" => "/some/",
                "basename" => "file.bla",
                "extension" => "bla");


        We could also make it return just one part as a sting if used
        like this:

        $a = pathinfo("/some/file.bla", PATHINFO_BASENAME);

    * possibly modify parsing of GPC data to automatically create arrays if
      variable name is seen more than once.
    * implement regex-cache for url-functions.
    * strcase_replace(). (Andrei)
    * move socket related functions to fsock.c.
    * get_defined_funcs(), get_defined_vars().
    * NOT binary safe:
        strtok()
        basename()
        dirname()
        strrpos()
        strrchr()
        strip_tags()

ext/wddx
--------
    * implement __sleep() and __wakeup() the way serialize()/unserialize() do.
    * 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)

other cool stuff
----------------
    * PVM extension