figure out and document the migration path
develop a set of migration scripts when possible to ease the 5.x → 6 transition
This section has not been updated in a while and so its probably better to look at the todo and progress overviews in cvs, and the progress tool)
-
implement caching of the last 3 opened collators
== should be the same as strcmp, and not using collation. strcoll() does.
use locale based functions where they make sense, and pick a conservative default. Examples are strtoupper/strtolower, stristr etc..
provide an additional error mode for character set conversion failures that throw exceptions on failures.
In run-tests.php output something at the end of c's main() to capture SEGVs during php shutdown in run-tests.php, probably change run-tests.php to catch SEGV (marcus)
deprecate ext/ctype in 6.0 and move to pecl in 6.1 in preference of unicode replacement functions. Note: the unicode replacements functions need to be merged to 5.x(without actual unicode support) for forward compatibility (andrei)
JIT fetch & (de-)encode of auto-globals based on this patch. Need to account for extensions wanting to access request data during RINIT. Some more references. DONE (Andrei)
cleanups
remove UG(unicode) checks/references, Unicode is always “on” DONE (Felipe, Steph)
Get rid of the BC crap in ext/date (derick)
Try to find a way to see how case sensitive identifiers could be gradually be implemented, but do not “fix” it for PHP6.
ext/dba should be handled in the same way as PDO through drivers maintained in PECL. but all the handlers stay in the distribution.
ext/soap
ext/soap will be turned on by default
implement some of the security extensions to ext/soap (rob)
watch axis2 based implementation development
make use of the
HTTP streams layer (dmitry)
add ext/bitset to core once CS violations are fixed (Scott) - Violations fixed, just needs to be merged.
add foreach( $a as $k ⇒ list($a, $b)) {} syntax (andrei)
speed up @-operator and ask andi for approval (ilia, marcus)
add ability to allocate persistent zvals in
PHP.
-
object casting to primitive types BC mess (derick)
add internal flag only to force calling of the parent constructor
add support for type-hinted return values.
implements the ReflectionClass cache in struct zend_class_entry*. (marcus)
class operator cleanup (static=static, non-static=non-static and no more ZEND_ACC_ALLOW_STATIC) (marcus)
Closures
-
Decide on how reflection will interact with $this / object scoping of closures and possibly object extension
allow opened files to be deleted on windows
Streams (wez)
APC
include APC in the core distributions (turned off by default) and switch to mmap as default shared memory storage.
ability to move autoloaded main classes in apc's class lookup preventing the overhead of doing the inheritance process all the time. (marcus)
include the protection against
HTTP Response Splitting attacks (header() shouldn't accept multiple headers in one call) from hardended php
add sand boxing if we have a rock solid implementation (sara)
prepare a patch that disallows mixing different open/close tags. (jani)
look at creating a solid plan to rewrite build system and when there is a volunteer to implement it.
GIF Write support and animated
GIF (pierre)
Full synchronisation with Boutell's GD (to and from php) (pierre)
Output Control
revisit existing output handlers (mike)
Rewrite parser to use lemon instead of bison (Scott, Etienne)
-
Update the php.ini files to reflect the various changes
implement “filename_encoding” setting and return binary string when functions such as readdir() encounter a filename that can not exist in the encoding that is set
decide on moving DB extensions out of the core later.
move other extensions to PECL on a case by case basis
regexp (anthony)
make determination on the default string type (binary/unicode). Requires extensive testing of existing code to determine migration pains.
safe_mode/open_basedir
unbundle safe_mode_exec_dir from safe_mode and keep it (rasmus) (take a look at
this patch too)
new ini option: open_basedir_for_include which would allow using include/require(_once) on an expanded set of directories (sara)
-
fileinfo
Fileinfo extension should be updated to only load its database once on MINIT.
add a new 64bit integer that is always 64bits regardless of platform or have a single bigint type in userland that uses 64-bit ints and unbounded ints internally (Pierre, David (Dsp))
-
Allow usage of C99 constructs in core/extensions