PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-?? ??? 20??, PHP 5.5.0 Beta 4
-
-- Zip:
- . Fixed bug #64342 (ZipArchive::addFile() has to check for file existence).
- (Anatol)
-
-11 Apr 2013, PHP 5.5.0 Beta 3
+?? ??? 2013, PHP 5.5.3
- Core:
- . Fixed bug #64578 (debug_backtrace in set_error_handler corrupts zend heap:
- segfault). (Laruence)
- . Fixed bug #64565 (copy doesn't report failure on partial copy). (Remi)
- . Fixed bug #64555 (foreach no longer copies keys if they are interned).
- (Nikita Popov)
- . Fixed bugs #47675 and #64577 (fd leak on Solaris)
-
-- CURL:
- . Added CURL_WRAPPERS_ENABLED constant. (Laruence)
+ . Fixed bug #62691 (solaris sed has no -i switch). (Chris Jones)
+ . Fixed bug #61345 (CGI mode - make install don't work). (Michael Heimpold)
+ . Fixed bug #61268 (--enable-dtrace leads make to clobber
+ Zend/zend_dtrace.d) (Chris Jones)
-- DateTime
- . Fixed bug #54567 (DateTimeZone serialize/unserialize) (Lonny
- Kapelushnik, Derick)
- . Fixed bug #60774 (DateInterval::format("%a") is always zero when an
- interval is created using the createFromDateString method) (Lonny
- Kapelushnik, Derick)
++- DOM:
++ . Added flags option to DOMDocument::schemaValidate() and
++ DOMDocument::schemaValidateSource(). Added LIBXML_SCHEMA_CREATE flag.
++ (Chris Wright)
+
-- General improvements:
- . Drop support for bison < 2.4 when building PHP from GIT source.
- (Laruence)
+- Sessions:
+ . Implemented strict sessions RFC (https://wiki.php.net/rfc/strict_sessions)
+ which protects against session fixation attacks and session collisions.
+ (Yasuo Ohgaki)
+ . Fixed possible buffer overflow under Windows. Note: Not a security fix.
+ (Yasuo)
+ . Changed session.auto_start to PHP_INI_PERDIR. (Yasuo)
-- Fileinfo:
- . Upgraded libmagic to 5.14. (Anatol)
+- Pgsql:
+ . Fixed bug #62978 (Disallow possible SQL injections with pg_select()/pg_update()
+ /pg_delete()/pg_insert()). (Yasuo)
-- OPcache
- . Added opcache_invalidate() function. (Dmitry)
- . Added ability to disable opcode cahing for current request by setting
- opcache.enable=0. (Dmitry)
- . Allowed comments in blacklist files started from ';'. (Remi)
- . Allowed wilcards in opcache.blacklist_filename. (Remi)
- . Fixed opcache reload condition. Now OPcache is not reloaded if it's full,
- but wasted memory is less than opcache.max_wasted_percentage. (Dmitry)
- . Fixed incorrect file path validation. (Dmitry).
- . Optimizer: Fixed Control Flow Graph construction. (Dmitry)
- . Optimizer: numeric string constants used as array indeces have to be
- converted to long at compile time. (Dmitry)
- . Optimizer: Fixed deltion of used literal. (Laruence, Dmitry)
-
-28 Mar 2013, PHP 5.5.0 Beta 2
+?? ??? 2013, PHP 5.5.2
- Core:
- . Fixed bug #64544 (Valgrind warnings after using putenv). (Laruence)
- . Fixed bug #64515 (Memoryleak when using the same variablename 2times in
- function declaration). (Laruence)
- . Fixed bug #64503 (Compilation fails with error: conflicting types for
- 'zendparse'). (Laruence)
- . Fixed bug #64239 (Debug backtrace changed behavior since 5.4.10 or 5.4.11).
- (Dmitry, Laruence)
- . Fixed bug #64523, allow XOR in php.ini. (Dejan Marjanovic, Lars)
-
-- Opcache:
- . Fixed bug # 64490 (struct flock undefined on FreeBSD). (Joe Watkins)
+ . Fixed bug #65372 (Segfault in gc_zval_possible_root when return reference
+ fails). (Laruence)
+ . Fixed value of FILTER_SANITIZE_FULL_SPECIAL_CHARS constant (previously was
+ erroneously set to FILTER_SANITIZE_SPECIAL_CHARS value). (Andrey
+ avp200681 gmail com).
+ . Fixed bug #65304 (Use of max int in array_sum). (Laruence)
+ . Fixed bug #65291 (get_defined_constants() causes PHP to crash in a very
+ limited case). (Arpad)
-21 Mar 2013, PHP 5.5.0 Beta 1
+- OPcache:
+ . Added opcache.restrict_api configuration directive that may limit
+ usage of OPcahce API functions only to patricular script(s). (Dmitry)
+ . Added support for glob symbols in blacklist entries (?, *, **).
+ (Terry Elison, Dmitry)
+ . Fixed bug #65338 (Enabling both php_opcache and php_wincache AVs on
+ shutdown). (Dmitry)
-- Core:
- . Added Zend Opcache extension and enable building it by default.
- More details here: https://wiki.php.net/rfc/optimizerplus. (Dmitry)
- . Added array_column function which returns a column in a multidimensional
- array. https://wiki.php.net/rfc/array_column. (Ben Ramsey)
- . Fixed bug #64354 (Unserialize array of objects whose class can't
- be autoloaded fail). (Laruence)
- . Added support for changing the process's title in CLI/CLI-Server SAPIs.
- The implementation is more robust that the proctitle PECL module. More
- details here: https://wiki.php.net/rfc/cli_process_title. (Keyur)
- . Fixed bug #64370 (microtime(true) less than $_SERVER['REQUEST_TIME_FLOAT']).
- (Anatol)
- . Added support for non-scalar Iterator keys in foreach
- (https://wiki.php.net/rfc/foreach-non-scalar-keys). (Nikita Popov)
+- PDO_mysql:
+ . Fixed bug #65299 (pdo mysql parsing errors). (Johannes)
-- mysqlnd
- . Fixed bug #63530 (mysqlnd_stmt::bind_one_parameter crashes, uses wrong alloc
- for stmt->param_bind). (Andrey)
+- Phar:
+ . Fixed bug #65028 (Phar::buildFromDirectory creates corrupt archives for
+ some specific contents). (Stas)
-- DateTime
- . Fixed bug #53437 (Crash when using unserialized DatePeriod instance).
- (Gustavo, Derick, Anatol)
- . Fixed bug #62852 (Unserialize Invalid Date causes crash). (Anatol)
+- SOAP:
+ . Fixed bug #65018 (SoapHeader problems with SoapServer). (Dmitry)
- SPL:
- . Implement FR #48358 (Add SplDoublyLinkedList::add() to insert an element
- at a given offset). (Mark Baker, David Soria Parra)
-
-- Zip:
- . Bug #64452 (Zip crash intermittently). (Anatol)
+ . Fixed bug #65328 (Segfault when getting SplStack object Value). (Laruence)
+ . Added RecursiveTreeIterator setPostfix and getPostifx methods. (Joshua
+ Thijssen)
+ . Fixed bug #61697 (spl_autoload_functions returns lambda functions
+ incorrectly). (Laruence)
-07 Mar 2013, PHP 5.5.0 Alpha 6
+- Streams:
+ . Fixed bug #65268 (select() implementation uses outdated tick API). (Anatol)
-- Core:
- . Fixed bug #61025 (__invoke() visibility not honored). (Laruence)
- . Fixed bug #49348 (Uninitialized ++$foo->bar; does not cause a notice).
- (Stas)
+- Pgsql:
+ . Fixed bug #65336 (pg_escape_literal/identifier() scilently returns false).
+ (Yasuo)
-- Sockets:
- . Fixed bug #64287 (sendmsg/recvmsg shutdown handler causes segfault).
- (Gustavo)
+18 Jul 2013, PHP 5.5.1
-- PCRE:
- . Merged PCRE 8.32. (Anatol)
+- Core:
+ . Fixed bug #65254 (Exception not catchable when exception thrown in autoload
+ with a namespace). (Laruence)
+ . Fixed bug #65088 (Generated configure script is malformed on OpenBSD).
+ (Adam)
+ . Fixed bug #65108 (is_callable() triggers Fatal Error).
+ (David Soria Parra, Laruence)
+ . Fixed bug #65035 (yield / exit segfault). (Nikita)
+ . Fixed bug #65161 (Generator + autoload + syntax error = segfault). (Nikita)
+ . hex2bin() raises E_WARNING for invalid hex string. (Yasuo)
+ . Fixed bug #65226 (chroot() does not get enabled). (Anatol)
-- DateTime:
- . Fixed bug #64359 (strftime crash with VS2012). (Anatol)
+- OPcache
+ . Fixed bug #64827 (Segfault in zval_mark_grey (zend_gc.c)). (Laruence)
+ . OPcache must be compatible with LiteSpeed SAPI (Dmitry)
-- SNMP:
- . Fixed bug #61981 (OO API, walk: $suffix_as_key is not working correctly).
- (Boris Lytochkin)
+- CGI:
+ . Fixed Bug #65143 (Missing php-cgi man page). (Remi)
-21 Feb 2013, PHP 5.5.0 Alpha 5
+- CLI server:
+ . Fixed bug #65066 (Cli server not responsive when responding with 422 http
+ status code). (Adam)
-- Core:
- . Implemented FR #64175 (Added HTTP codes as of RFC 6585). (Jonh Wendell)
- . Fixed bug #64135 (Exceptions from set_error_handler are not always
- propagated). (Laruence)
- . Fixed bug #63830 (Segfault on undefined function call in nested generator).
- (Nikita Popov)
- . Fixed bug #60833 (self, parent, static behave inconsistently
- case-sensitive). (Stas, mario at include-once dot org)
- . Implemented FR #60524 (specify temp dir by php.ini). (ALeX Kazik).
- . Fixed bug #64142 (dval to lval different behavior on ppc64). (Remi)
- . Added ARMv7/v8 versions of various Zend arithmetic functions that are
- implemented using inline assembler (Ard Biesheuvel)
- . Fix undefined behavior when converting double variables to integers.
- The double is now always rounded towards zero, the remainder of its division
- by 2^32 or 2^64 (depending on sizeof(long)) is calculated and it's made
- signed assuming a two's complement representation. (Gustavo)
+- DateTime
+ . Fixed fug #65184 (strftime() returns insufficient-length string under
+ multibyte locales). (Anatol)
-- CLI server:
- . Fixed bug #64128 (buit-in web server is broken on ppc64). (Remi)
+- GD
+ . Fixed #65070 (bgcolor does not use the same format as the input image with
+ imagerotate). (Pierre)
+ . Fixed Bug #65060 (imagecreatefrom... crashes with user streams). (Remi)
+ . Fixed Bug #65084 (imagecreatefromjpeg fails with URL). (Remi)
+ . Fix gdImageCreateFromWebpCtx and use same logic to load WebP image
+ that other formats. (Remi)
-- cURL:
- . Implemented FR #46439 - added CURLFile for safer file uploads.
+- Intl:
+ . Add IntlCalendar::setMinimalDaysInFirstWeek()/
+ intlcal_set_minimal_days_in_first_week().
+ . Fixed trailing space in name of constant IntlCalendar::FIELD_FIELD_COUNT.
+ . Fixed bug #62759 (Buggy grapheme_substr() on edge case). (Stas)
+ . Fixed bug #61860 (Offsets may be wrong for grapheme_stri* functions).
(Stas)
-- Intl:
- . Cherry-picked UConverter wrapper, which had accidentaly been committed only
- to master.
+- OCI8:
+ . Bump PECL package info version check to allow PECL installs with PHP 5.5+
-- mysqli
- . Added mysqli_begin_transaction()/mysqli::begin_transaction(). Implemented
- all options, per MySQL 5.6, which can be used with START TRANSACTION, COMMIT
- and ROLLBACK through options to mysqli_commit()/mysqli_rollback() and their
- respective OO counterparts. They work in libmysql and mysqlnd mode. (Andrey)
- . Added mysqli_savepoint(), mysqli_release_savepoint(). (Andrey)
+- PDO:
+ . Allowed PDO_OCI to compile with Oracle Database 12c client libraries.
+ (Chris Jones)
-- mysqlnd
- . Add new begin_transaction() call to the connection object. Implemented all
- options, per MySQL 5.6, which can be used with START TRANSACTION, COMMIT
- and ROLLBACK. (Andrey)
- . Added mysqlnd_savepoint(), mysqlnd_release_savepoint(). (Andrey)
+- Pgsql
+ . pg_unescape_bytea() raises E_WARNING for invalid inputs. (Yasuo)
-- Sockets:
- . Added recvmsg() and sendmsg() wrappers. (Gustavo)
- See https://wiki.php.net/rfc/sendrecvmsg
+- Phar:
+ . Fixed Bug #65142 (Missing phar man page). (Remi)
-- Filter:
- . Implemented FR #49180 - added MAC address validation. (Martin)
+- Session:
+ . Added optional create_sid() argument to session_set_save_handler(),
+ SessionHandler and new SessionIdInterface. (Leigh, Arpad)
-- Phar:
- . Fixed timestamp update on Phar contents modification. (Dmitry)
+- Sockets:
+ . Implemented FR #63472 (Setting SO_BINDTODEVICE with socket_set_option).
+ (Damjan Cvetko)
+ . Allowed specifying paths in the abstract namespace for the functions
+ socket_bind(), socket_connect() and socket_sendmsg(). (Gustavo)
+ . Fixed bug #65260 (sendmsg() ancillary data construction for SCM_RIGHTS is
+ faulty). (Gustavo)
- SPL:
- . Fixed bug #64264 (SPLFixedArray toArray problem). (Laruence)
- . Fixed bug #64228 (RecursiveDirectoryIterator always assumes SKIP_DOTS).
- (patch by kriss@krizalys.com, Laruence)
- . Fixed bug #64106 (Segfault on SplFixedArray[][x] = y when extended).
- (Nikita Popov)
- . Fixed bug #52861 (unset fails with ArrayObject and deep arrays).
- (Mike Willbanks)
+ . Fixed bug #65136 (RecursiveDirectoryIterator segfault). (Laruence)
+ . Fixed bug #61828 (Memleak when calling Directory(Recursive)Iterator
+ /Spl(Temp)FileObject ctor twice). (Laruence)
-- SNMP:
- . Fixed bug #64124 (IPv6 malformed). (Boris Lytochkin)
+- CGI/FastCGI SAPI:
+ . Added PHP_FCGI_BACKLOG, overrides the default listen backlog. (Arnaud Le
+ Blanc)
-24 Jan 2013, PHP 5.5.0 Alpha 4
+20 Jun 2013, PHP 5.5.0
- Core:
- . Fixed bug #63980 (object members get trimmed by zero bytes). (Laruence)
- . Implemented RFC for Class Name Resolution As Scalar Via "class" Keyword.
- (Ralph Schindler, Nikita Popov, Lars)
-
-- DateTime
- . Added DateTimeImmutable - a variant of DateTime that only returns the
- modified state instead of changing itself. (Derick)
-
-- FPM:
- . Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11). (Adam)
-
-- pgsql:
- . Bug #46408: Locale number format settings can cause pg_query_params to
- break with numerics. (asmecher, Lars)
-
-- dba:
- . Bug #62489: dba_insert not working as expected.
- (marc-bennewitz at arcor dot de, Lars)
-
-- Reflection:
- . Fixed bug #64007 (There is an ability to create instance of Generator by
- hand). (Laruence)
-
-10 Jan 2013, PHP 5.5.0 Alpha 3
-
-- General improvements:
- . Fixed bug #63874 (Segfault if php_strip_whitespace has heredoc). (Pierrick)
- . Fixed bug #63822 (Crash when using closures with ArrayAccess).
+ . Added Zend Opcache extension and enable building it by default.
+ More details here: https://wiki.php.net/rfc/optimizerplus. (Dmitry)
+ . Added generators and coroutines (https://wiki.php.net/rfc/generators).
(Nikita Popov)
- . Add Generator::throw() method. (Nikita Popov)
- . Bug #23955: allow specifying Max-Age attribute in setcookie() (narfbg, Lars)
- . Bug #52126: timestamp for mail.log (Martin Jansen, Lars)
-
-- mysqlnd
- . Fixed return value of mysqli_stmt_affected_rows() in the time after
- prepare() and before execute(). (Andrey)
-
-- cURL:
- . Added new functions curl_escape, curl_multi_setopt, curl_multi_strerror
- curl_pause, curl_reset, curl_share_close, curl_share_init,
- curl_share_setopt curl_strerror and curl_unescape. (Pierrick)
- . Addes new curl options CURLOPT_TELNETOPTIONS, CURLOPT_GSSAPI_DELEGATION,
- CURLOPT_ACCEPTTIMEOUT_MS, CURLOPT_SSL_OPTIONS, CURLOPT_TCP_KEEPALIVE,
- CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL. (Pierrick)
-
-18 Dec 2012, PHP 5.5.0 Alpha 2
-
-- General improvements:
- . Added systemtap support by enabling systemtap compatible dtrace probes on
- linux. (David Soria Parra)
+ . Added "finally" keyword (https://wiki.php.net/rfc/finally). (Laruence)
+ . Added simplified password hashing API
+ (https://wiki.php.net/rfc/password_hash). (Anthony Ferrara)
+ . Added support for constant array/string dereferencing. (Laruence)
+ . Added array_column function which returns a column in a multidimensional
+ array. https://wiki.php.net/rfc/array_column. (Ben Ramsey)
+ . Added boolval(). (Jille Timmermans)
+ . Added "Z" option to pack/unpack. (Gustavo)
+ . Added Generator::throw() method. (Nikita Popov)
+ . Added Class Name Resolution As Scalar Via "class" Keyword.
+ (Ralph Schindler, Nikita Popov, Lars)
+ . Added optional second argument for assert() to specify custom message. Patch
+ by Lonny Kapelushnik (lonny@lonnylot.com). (Lars)
. Added support for using empty() on the result of function calls and
other expressions (https://wiki.php.net/rfc/empty_isset_exprs).
(Nikita Popov)
4. Changed Functions
========================================
-- pack()/unpack() had the following changes, which bring it more in line
- with Perl's behavior:
- - Implemented format character "Z": NULL padded string, with trailing NULL
- bytes removed.
- - Changed format character "a": this no longer removes trailing NULL bytes.
- - Changed format character "A": all trailing ASCII whitespace is now removed
- (defined as spaces, tabs, \r, \n and NULL).
-- MessageFormatter::format() and related functions now accepted named arguments
- and mixed numeric/named arguments in ICU 4.8+.
-- MessageFormatter::format() and related functions now don't error out when
- an insufficient argument count is provided. Instead, the placeholders will
- remain unsubstituted.
-- MessageFormatter::parse() and MessageFormat::format() (and their static
- equivalents) now don't throw away better than second precision in the
- arguments.
-- IntlDateFormatter::__construct and datefmt_create() now accept for the
- $timezone argument time zone identifiers, IntlTimeZone objects, DateTimeZone
- objects and NULL. It used to accept only time zone identifiers and NULL.
- Invalid time zone identifiers are no longer accepted. Emptry strings are
- no longer accepted.
+- pack()/unpack() had the following changes, which bring it more in
+ line with Perl's behavior: - Implemented format character "Z": NULL
+ padded string, with trailing NULL bytes removed. - Changed format
+ character "a": this no longer removes trailing NULL bytes. -
+ Changed format character "A": all trailing ASCII whitespace is now
+ removed (defined as spaces, tabs, \r, \n and NULL).
+
+- MessageFormatter::format() and related functions now accepted named
+ arguments and mixed numeric/named arguments in ICU 4.8+.
+
+- MessageFormatter::format() and related functions now don't error out
+ when an insufficient argument count is provided. Instead, the
+ placeholders will remain unsubstituted.
+
+- MessageFormatter::parse() and MessageFormat::format() (and their
+ static equivalents) now don't throw away better than second
+ precision in the arguments.
+
+- IntlDateFormatter::__construct and datefmt_create() now accept for
+ the $timezone argument time zone identifiers, IntlTimeZone objects,
+ DateTimeZone objects and NULL. It used to accept only time zone
+ identifiers and NULL. Invalid time zone identifiers are no longer
+ accepted. Empty strings are no longer accepted.
+
- The default time zone used in IntlDateFormatter::__construct and
- datefmt_create() (when the corresponding argument is not passed or NULL is
- passed) is now the one given by date_default_timezone_get(), not the
- default ICU time zone.
-- The time zone passed to the IntlDateFormatter is ignored if it is NULL and if
- the calendar passed is an IntlCalendar object -- in this case, the
- IntlCalendar's time zone will be used instead. Otherwise, the time zone
- specified in the $timezone argument is used instead. This does not affect
- old code, as IntlCalendar was introduced in this version.
-- IntlDateFormatter::__construct and datefmt_create() now accept for the
- $calendar argument also IntlCalendar objects.
-- IntlDateFormatter::getCalendar() and datefmt_get_calendar() return false
- if the IntlDateFormatter was set up with an IntlCalendar instead of the
- constants IntlDateFormatter::GREGORIAN/TRADITIONAL. IntlCalendar did not
- exist before this version.
-- IntlDateFormatter::setCalendar() and datefmt_set_calendar() now also accept
- an IntlCalendar object, in which case its time zone is taken. Passing a
- constant is still allowed, and still keeps the time zone.
+ datefmt_create() (when the corresponding argument is not passed or
+ NULL is passed) is now the one given by date_default_timezone_get(),
+ not the default ICU time zone.
+
+- The time zone passed to the IntlDateFormatter is ignored if it is
+ NULL and if the calendar passed is an IntlCalendar object -- in this
+ case, the IntlCalendar's time zone will be used instead. Otherwise,
+ the time zone specified in the $timezone argument is used
+ instead. This does not affect old code, as IntlCalendar was
+ introduced in this version.
+
+- IntlDateFormatter::__construct and datefmt_create() now accept for
+ the $calendar argument also IntlCalendar objects.
+
+- IntlDateFormatter::getCalendar() and datefmt_get_calendar() return
+ false if the IntlDateFormatter was set up with an IntlCalendar
+ instead of the constants
+ IntlDateFormatter::GREGORIAN/TRADITIONAL. IntlCalendar did not exist
+ before this version.
+
+- IntlDateFormatter::setCalendar() and datefmt_set_calendar() now also
+ accept an IntlCalendar object, in which case its time zone is
+ taken. Passing a constant is still allowed, and still keeps the time
+ zone.
+
- IntlDateFormatter::format() and datefmt_format() now also accept an
IntlCalendar object for formatting.
-- php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid() and
- zend_logo_guid() have been removed
+
- set_error_handler(NULL) can now be used to reset the error handler.
- Furthermore both set_error_handler(NULL) and set_exception_handler(NULL) will
- now return the previously defined error/exception handler. Previously
- bool(true) was returned.
-- setcookie(), setrawcookie() and ext/session now send Max-Age headers alongside
- Expires headers. (see https://wiki.php.net/rfc/cookie_max-age)
-- curl_setopt now accepts new option CURLOPT_SAFE_UPLOAD and CURLFile object for
- safer file uploads (see https://wiki.php.net/rfc/curl-file-upload)
-- Functions in the socket extension now do not emit warnings when the errno is
- EAGAIN, EWOULDBLOCK or EINPROGRESS.
+ Furthermore both set_error_handler(NULL) and
+ set_exception_handler(NULL) will now return the previously defined
+ error/exception handler. Previously bool(true) was returned.
+
+- setcookie(), setrawcookie() and ext/session now send Max-Age headers
+ alongside Expires headers. (see
+ https://wiki.php.net/rfc/cookie_max-age)
+
+- curl_setopt now accepts new option CURLOPT_SAFE_UPLOAD and CURLFile
+ object for safer file uploads (see
+ https://wiki.php.net/rfc/curl-file-upload)
+
+- Functions in the socket extension now do not emit warnings when the
+ errno is EAGAIN, EWOULDBLOCK or EINPROGRESS.
+
+- Since 5.5.2, spl_autoload_functions() returns different names for
+ different lambda functions registered via spl_autoload_register().
+
++- Since 5.5.3, DOMDocument::schemaValidateSource() and
++ DOMDocument::schemaValidate() accept flag parameter. Only flag
++ available now is LIBXML_SCHEMA_CREATE. Default is 0.
+
========================================
5. New Functions
========================================