pAUL gAO [email_address] 10-20-2011
Removed legacy features Safe mode and all related ini options. register_globals and register_long_arrays ini options. break/continue $var syntax. import_request_variables(). allow_call_time_pass_reference. define_syslog_variables ini option and its associated function. highlight.bg ini option. Session bug compatibility mode (session.bug_compat42 and session.bug_compat_warn ini options). session_is_registered(), session_register() and session_unregister() functions. y2k_compliance ini option. PDO_mysql: Removed support for linking with MySQL client libraries older than 4.1.
Performance & Memory Usage Improvement part 1 /php537/php micro_bench.php Max memory usage  1048576  bytes. Running  27.608 s. /php540/php micro_bench.php Max memory usage  524288  bytes. Running  13.254 s.
Performance & Memory Usage Improvement part 2 /php537/php NewObjectClassTest.php Running  0.20629 s ,  640616 bytes. /php537/php StaticClassTest.php Running  0.35047 s,  640616 bytes. /php540/php NewObjectClassTest.php Running  0.12018 s,  227808 bytes. /php540/php StaticClassTest.php Running  0.10803 s,  227880 bytes.
Performance & Memory Usage Improvement part 3 for ($count = 0; $count < 10000000; $count++) { $result = 100 + 100 - 100 * 100 / 100; } /php537/php mathTest.php Running  1.75259 s,  632176 bytes. /php540/php mathTest.php Running  1.06825 s,  223208 bytes.
New feature: Traits trait Hello { public function sayHello() { echo 'Hello '; } } trait World { public function sayWorld() { echo ' World'; } } class MyHelloWorld { use Hello, World; public function sayExclamationMark() { echo '!'; } } $o = new MyHelloWorld(); $o->sayHello(); $o->sayWorld(); $o->sayExclamationMark();
New feature: Array dereferencing class Foo { public function bar() { } } function func() { return new Foo(); } func()->bar();
New Feature: Indirect method call through array class Hello { public function world($x) { echo &quot;Hello, $x\n&quot;; return $this; } } $f = array('Hello','world'); var_dump($f('you'));
New feature: Built-in web server Feature for developer. php -S localhost:8000 php -S localhost:8000 -t docroot php -S localhost:8000 routing.php
General Improvements part 1 Added closure $this support back. Improved unserialize() performance. Improved performance of @ (silence) operator. Improved parse error messages. Improved output layer. see README.NEW-OUTPUT-API for internals. Added DTrace support.
General Improvements part 2 Added multibyte support by default. Previously php had to be compiled with --enable-zend-multibyte. Now it can be enabled or disabled through zend.multibyte directive in php.ini. Added optional argument to debug_backtrace() and debug_print_backtrace() to limit the amount of stack frames returned. Added stream metadata API support and stream_metadata() stream class handler. Added support for storing upload progress feedback in session data
New Functions part 1 MySQLnd added named pipes support. Added http_response_code() function. Added JsonSerializable interface. Added FNV-1 hash support. Added hex2bin() function. Reflection extension: Added ReflectionExtension::isTemporary() and ReflectionExtension::isPersistent() methods. Added ReflectionZendExtension class. Added ReflectionClass::isCloneable().
New Functions part 2 Added header_register_callback() which is invoked immediately prior to the sending of headers and after default headers have been added. SPL extension: Added RegexIterator::getRegex() method. Added SplObjectStorage::getHash() hook. Added CallbackFilterIterator and RecursiveCallbackFilterIterator. SNMP extension: OO API.
Misc. Changes Changed $_SERVER['REQUEST_TIME'] to include microsecond precision. <?= is now always available regardless of the short_tags setting. Changed default value of &quot;default_charset&quot; php.ini option from ISO-8859-1 to UTF-8.
Timetable Alpha 1 - June 28 2011 (DONE) http://www.php.net/archive/2011.php#id2011-06-28-1 Alpha 2 - July 14 2011 (DONE) Alpha 3 - August 4 2011 (DONE) Beta 1 - September 15 2011 (DONE) Beta 2 - October 20 2011 (DONE) RC 1 - November 10 2011 So, maybe, Dec 2011 to <RELEASE> 5.4.0?
Links Todo: https://wiki.php.net/todo/php54 SVN Repository: http://svn.php.net/repository/php/php-src/branches/PHP_5_4 NEWS http://svn.php.net/repository/php/php-src/branches/PHP_5_4/NEWS   Maillist: http://news.php.net/php.internals
 

Come on, PHP 5.4!

  • 1.
  • 2.
    Removed legacy featuresSafe mode and all related ini options. register_globals and register_long_arrays ini options. break/continue $var syntax. import_request_variables(). allow_call_time_pass_reference. define_syslog_variables ini option and its associated function. highlight.bg ini option. Session bug compatibility mode (session.bug_compat42 and session.bug_compat_warn ini options). session_is_registered(), session_register() and session_unregister() functions. y2k_compliance ini option. PDO_mysql: Removed support for linking with MySQL client libraries older than 4.1.
  • 3.
    Performance & MemoryUsage Improvement part 1 /php537/php micro_bench.php Max memory usage 1048576 bytes. Running 27.608 s. /php540/php micro_bench.php Max memory usage 524288 bytes. Running 13.254 s.
  • 4.
    Performance & MemoryUsage Improvement part 2 /php537/php NewObjectClassTest.php Running 0.20629 s , 640616 bytes. /php537/php StaticClassTest.php Running 0.35047 s, 640616 bytes. /php540/php NewObjectClassTest.php Running 0.12018 s, 227808 bytes. /php540/php StaticClassTest.php Running 0.10803 s, 227880 bytes.
  • 5.
    Performance & MemoryUsage Improvement part 3 for ($count = 0; $count < 10000000; $count++) { $result = 100 + 100 - 100 * 100 / 100; } /php537/php mathTest.php Running 1.75259 s, 632176 bytes. /php540/php mathTest.php Running 1.06825 s, 223208 bytes.
  • 6.
    New feature: Traitstrait Hello { public function sayHello() { echo 'Hello '; } } trait World { public function sayWorld() { echo ' World'; } } class MyHelloWorld { use Hello, World; public function sayExclamationMark() { echo '!'; } } $o = new MyHelloWorld(); $o->sayHello(); $o->sayWorld(); $o->sayExclamationMark();
  • 7.
    New feature: Arraydereferencing class Foo { public function bar() { } } function func() { return new Foo(); } func()->bar();
  • 8.
    New Feature: Indirectmethod call through array class Hello { public function world($x) { echo &quot;Hello, $x\n&quot;; return $this; } } $f = array('Hello','world'); var_dump($f('you'));
  • 9.
    New feature: Built-inweb server Feature for developer. php -S localhost:8000 php -S localhost:8000 -t docroot php -S localhost:8000 routing.php
  • 10.
    General Improvements part1 Added closure $this support back. Improved unserialize() performance. Improved performance of @ (silence) operator. Improved parse error messages. Improved output layer. see README.NEW-OUTPUT-API for internals. Added DTrace support.
  • 11.
    General Improvements part2 Added multibyte support by default. Previously php had to be compiled with --enable-zend-multibyte. Now it can be enabled or disabled through zend.multibyte directive in php.ini. Added optional argument to debug_backtrace() and debug_print_backtrace() to limit the amount of stack frames returned. Added stream metadata API support and stream_metadata() stream class handler. Added support for storing upload progress feedback in session data
  • 12.
    New Functions part1 MySQLnd added named pipes support. Added http_response_code() function. Added JsonSerializable interface. Added FNV-1 hash support. Added hex2bin() function. Reflection extension: Added ReflectionExtension::isTemporary() and ReflectionExtension::isPersistent() methods. Added ReflectionZendExtension class. Added ReflectionClass::isCloneable().
  • 13.
    New Functions part2 Added header_register_callback() which is invoked immediately prior to the sending of headers and after default headers have been added. SPL extension: Added RegexIterator::getRegex() method. Added SplObjectStorage::getHash() hook. Added CallbackFilterIterator and RecursiveCallbackFilterIterator. SNMP extension: OO API.
  • 14.
    Misc. Changes Changed$_SERVER['REQUEST_TIME'] to include microsecond precision. <?= is now always available regardless of the short_tags setting. Changed default value of &quot;default_charset&quot; php.ini option from ISO-8859-1 to UTF-8.
  • 15.
    Timetable Alpha 1- June 28 2011 (DONE) http://www.php.net/archive/2011.php#id2011-06-28-1 Alpha 2 - July 14 2011 (DONE) Alpha 3 - August 4 2011 (DONE) Beta 1 - September 15 2011 (DONE) Beta 2 - October 20 2011 (DONE) RC 1 - November 10 2011 So, maybe, Dec 2011 to <RELEASE> 5.4.0?
  • 16.
    Links Todo: https://wiki.php.net/todo/php54SVN Repository: http://svn.php.net/repository/php/php-src/branches/PHP_5_4 NEWS http://svn.php.net/repository/php/php-src/branches/PHP_5_4/NEWS Maillist: http://news.php.net/php.internals
  • 17.