summaryrefslogtreecommitdiff
path: root/TODO
blob: 3063152d4dc30e0d92bb5ed89ab7c1d1dda8b45d (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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
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().
    * make hash API functions work with HASH_OF() to save time.
    * native large number support (probably with GNU GMP)
    * Const'ify APIs. Right now, many functions leave parameters untouched,
      but don't declare those as const. This makes interaction with other
      interfaces difficult which pass const parameters to us. 

global
------
	* when used in standalone (skell-script like) mode don't urldecode
	  arguments passed to php. right now it's not possible to say
	    /usr/local/bin/php somescript.php dog+cat.txt
	  as "dog+cat.txt" will arrive in php as "dog cat.txt". 
    * 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 (DONE?).
    * 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().
    * see what functions might need to be changed to use HashPosition, so
      that the internal array pointer is not affected.

documentation
-------------
    * add remarks in the documentation which functions are not implemented on win32.
    * add remarks in the documentation which functions are not binary-safe.
	* improve documentation for the sablotron extension
	* update curl documentation
	* write documentation for the bzip2 extension
	* write documentation for the zziplib extension

ext/curl
--------
	* Use the cURL write handler to save data for use when returning data or outputting
	  data.
	* Have a warning scheme for when people use unsupported features.

ext/dav
--------
    * rewrite.

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.
	* for additional todo information, see oci8.c, in ext/oci8

ext/pcre
--------
    * update the online docs from version 3.1 man page

ext/sablot
----------
	* Re-write the error handling and reporting interface
	* Cleanup the underlying code a bit
	* Add proper support for the message handlers

ext/session
-----------
    * maybe implement finer-grained session variables that could be 
      locked individually.
    * write a network-transparent storage back-end with fallover
      facilities

ext/sockets
-----------
	* Make the extension work on windows
	* Make the extension work with Solaris and the Sun GCC

ext/standard
------------
    * add a version number to data serialized via serialize().
    * array_add(). (Andrei)
    * 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.
    * NOT binary safe:
        strtok()
        basename()
        dirname()
        strrpos()
        strrchr()
        strip_tags()
    * rewrite win32 SMTP code to be useable for *ix to, maybe as a (default)
      module of its own (Hartmut)

ext/zziplib
------------
	* more fully support the zziplib api

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)

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