|
| 1 | +PHP NEWS |
| 2 | +||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| |
| 3 | +?? ??? 201?, PHP 5.5.0 Beta 1 |
| 4 | + |
| 5 | +- Core: |
| 6 | + . Fixed bug #49348 (Uninitialized ++$foo->bar; does not cause a notice). |
| 7 | + (Stas) |
| 8 | + |
| 9 | +- Sockets: |
| 10 | + . Fixed bug #64287 (sendmsg/recvmsg shutdown handler causes segfault). |
| 11 | + (Gustavo) |
| 12 | + |
| 13 | +- PCRE: |
| 14 | + . Merged PCRE 8.32. (Anatol) |
| 15 | + |
| 16 | +21 Feb 2013, PHP 5.5.0 Alpha 5 |
| 17 | + |
| 18 | +- Core: |
| 19 | + . Implemented FR #64175 (Added HTTP codes as of RFC 6585). (Jonh Wendell) |
| 20 | + . Fixed bug #64135 (Exceptions from set_error_handler are not always |
| 21 | + propagated). (Laruence) |
| 22 | + . Fixed bug #63830 (Segfault on undefined function call in nested generator). |
| 23 | + (Nikita Popov) |
| 24 | + . Fixed bug #60833 (self, parent, static behave inconsistently |
| 25 | + case-sensitive). (Stas, mario at include-once dot org) |
| 26 | + . Implemented FR #60524 (specify temp dir by php.ini). (ALeX Kazik). |
| 27 | + . Fixed bug #64142 (dval to lval different behavior on ppc64). (Remi) |
| 28 | + . Added ARMv7/v8 versions of various Zend arithmetic functions that are |
| 29 | + implemented using inline assembler (Ard Biesheuvel) |
| 30 | + . Fix undefined behavior when converting double variables to integers. |
| 31 | + The double is now always rounded towards zero, the remainder of its division |
| 32 | + by 2^32 or 2^64 (depending on sizeof(long)) is calculated and it's made |
| 33 | + signed assuming a two's complement representation. (Gustavo) |
| 34 | + |
| 35 | +- CLI server: |
| 36 | + . Fixed bug #64128 (buit-in web server is broken on ppc64). (Remi) |
| 37 | + |
| 38 | +- cURL: |
| 39 | + . Implemented FR #46439 - added CURLFile for safer file uploads. |
| 40 | + (Stas) |
| 41 | + |
| 42 | +- Intl: |
| 43 | + . Cherry-picked UConverter wrapper, which had accidentaly been committed only |
| 44 | + to master. |
| 45 | + |
| 46 | +- mysqli |
| 47 | + . Added mysqli_begin_transaction()/mysqli::begin_transaction(). Implemented |
| 48 | + all options, per MySQL 5.6, which can be used with START TRANSACTION, COMMIT |
| 49 | + and ROLLBACK through options to mysqli_commit()/mysqli_rollback() and their |
| 50 | + respective OO counterparts. They work in libmysql and mysqlnd mode. (Andrey) |
| 51 | + . Added mysqli_savepoint(), mysqli_release_savepoint(). (Andrey) |
| 52 | + |
| 53 | +- mysqlnd |
| 54 | + . Add new begin_transaction() call to the connection object. Implemented all |
| 55 | + options, per MySQL 5.6, which can be used with START TRANSACTION, COMMIT |
| 56 | + and ROLLBACK. (Andrey) |
| 57 | + . Added mysqlnd_savepoint(), mysqlnd_release_savepoint(). (Andrey) |
| 58 | + |
| 59 | +- Sockets: |
| 60 | + . Added recvmsg() and sendmsg() wrappers. (Gustavo) |
| 61 | + See https://wiki.php.net/rfc/sendrecvmsg |
| 62 | + |
| 63 | +- Filter: |
| 64 | + . Implemented FR #49180 - added MAC address validation. (Martin) |
| 65 | + |
| 66 | +- Phar: |
| 67 | + . Fixed timestamp update on Phar contents modification. (Dmitry) |
| 68 | + |
| 69 | +- SPL: |
| 70 | + . Fixed bug #64264 (SPLFixedArray toArray problem). (Laruence) |
| 71 | + . Fixed bug #64228 (RecursiveDirectoryIterator always assumes SKIP_DOTS). |
| 72 | + (patch by kriss@krizalys.com, Laruence) |
| 73 | + . Fixed bug #64106 (Segfault on SplFixedArray[][x] = y when extended). |
| 74 | + (Nikita Popov) |
| 75 | + . Fixed bug #52861 (unset fails with ArrayObject and deep arrays). |
| 76 | + (Mike Willbanks) |
| 77 | + |
| 78 | +- SNMP: |
| 79 | + . Fixed bug #64124 (IPv6 malformed). (Boris Lytochkin) |
| 80 | + |
| 81 | +24 Jan 2013, PHP 5.5.0 Alpha 4 |
| 82 | + |
| 83 | +- Core: |
| 84 | + . Fixed bug #63980 (object members get trimmed by zero bytes). (Laruence) |
| 85 | + . Implemented RFC for Class Name Resolution As Scalar Via "class" Keyword. |
| 86 | + (Ralph Schindler, Nikita Popov, Lars) |
| 87 | + |
| 88 | +- DateTime |
| 89 | + . Added DateTimeImmutable - a variant of DateTime that only returns the |
| 90 | + modified state instead of changing itself. (Derick) |
| 91 | + |
| 92 | +- FPM: |
| 93 | + . Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11). (Adam) |
| 94 | + |
| 95 | +- pgsql: |
| 96 | + . Bug #46408: Locale number format settings can cause pg_query_params to |
| 97 | + break with numerics. (asmecher, Lars) |
| 98 | + |
| 99 | +- dba: |
| 100 | + . Bug #62489: dba_insert not working as expected. |
| 101 | + (marc-bennewitz at arcor dot de, Lars) |
| 102 | + |
| 103 | +- Reflection: |
| 104 | + . Fixed bug #64007 (There is an ability to create instance of Generator by |
| 105 | + hand). (Laruence) |
| 106 | + |
| 107 | +10 Jan 2013, PHP 5.5.0 Alpha 3 |
| 108 | + |
| 109 | +- General improvements: |
| 110 | + . Fixed bug #63874 (Segfault if php_strip_whitespace has heredoc). (Pierrick) |
| 111 | + . Fixed bug #63822 (Crash when using closures with ArrayAccess). |
| 112 | + (Nikita Popov) |
| 113 | + . Add Generator::throw() method. (Nikita Popov) |
| 114 | + . Bug #23955: allow specifying Max-Age attribute in setcookie() (narfbg, Lars) |
| 115 | + . Bug #52126: timestamp for mail.log (Martin Jansen, Lars) |
| 116 | + |
| 117 | +- mysqlnd |
| 118 | + . Fixed return value of mysqli_stmt_affected_rows() in the time after |
| 119 | + prepare() and before execute(). (Andrey) |
| 120 | + |
| 121 | +- cURL: |
| 122 | + . Added new functions curl_escape, curl_multi_setopt, curl_multi_strerror |
| 123 | + curl_pause, curl_reset, curl_share_close, curl_share_init, |
| 124 | + curl_share_setopt curl_strerror and curl_unescape. (Pierrick) |
| 125 | + . Addes new curl options CURLOPT_TELNETOPTIONS, CURLOPT_GSSAPI_DELEGATION, |
| 126 | + CURLOPT_ACCEPTTIMEOUT_MS, CURLOPT_SSL_OPTIONS, CURLOPT_TCP_KEEPALIVE, |
| 127 | + CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL. (Pierrick) |
| 128 | + |
| 129 | +18 Dec 2012, PHP 5.5.0 Alpha 2 |
| 130 | + |
| 131 | +- General improvements: |
| 132 | + . Added systemtap support by enabling systemtap compatible dtrace probes on |
| 133 | + linux. (David Soria Parra) |
| 134 | + . Added support for using empty() on the result of function calls and |
| 135 | + other expressions (https://wiki.php.net/rfc/empty_isset_exprs). |
| 136 | + (Nikita Popov) |
| 137 | + . Optimized access to temporary and compiled VM variables. 8% less memory |
| 138 | + reads. (Dmitry) |
| 139 | + . The VM stacks for passing function arguments and syntaticaly nested calls |
| 140 | + were merged into a single stack. The stack size needed for op_array |
| 141 | + execution is calculated at compile time and preallocated at once. As result |
| 142 | + all the stack push operatins don't require checks for stack overflow |
| 143 | + any more. (Dmitry) |
| 144 | + |
| 145 | +- MySQL |
| 146 | + . This extension is now deprecated, and deprecation warnings will be generated |
| 147 | + when connections are established to databases via mysql_connect(), |
| 148 | + mysql_pconnect(), or through implicit connection: use MySQLi or PDO_MySQL |
| 149 | + instead (https://wiki.php.net/rfc/mysql_deprecation). (Adam) |
| 150 | + |
| 151 | +- Fileinfo: |
| 152 | + . Fixed bug #63590 (Different results in TS and NTS under Windows). |
| 153 | + (Anatoliy) |
| 154 | + |
| 155 | +- Apache2 Handler SAPI: |
| 156 | + . Enabled Apache 2.4 configure option for Windows (Pierre, Anatoliy) |
| 157 | + |
| 158 | +13 Nov 2012, PHP 5.5.0 Alpha 1 |
| 159 | + |
| 160 | +- General improvements: |
| 161 | + . Added generators and coroutines (https://wiki.php.net/rfc/generators). |
| 162 | + (Nikita Popov) |
| 163 | + . Added "finally" keyword (https://wiki.php.net/rfc/finally). (Laruence) |
| 164 | + . Add simplified password hashing API |
| 165 | + (https://wiki.php.net/rfc/password_hash). (Anthony Ferrara) |
| 166 | + . Added support for list in foreach (https://wiki.php.net/rfc/foreachlist). |
| 167 | + (Laruence) |
| 168 | + . Added support for using empty() on the result of function calls and |
| 169 | + other expressions (https://wiki.php.net/rfc/empty_isset_exprs). |
| 170 | + (Nikita Popov) |
| 171 | + . Added support for constant array/string dereferencing. (Laruence) |
| 172 | + . Improve set_exception_handler while doing reset.(Laruence) |
| 173 | + . Remove php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid(), |
| 174 | + zend_logo_guid(). (Adnrew Faulds) |
| 175 | + . Drop Windows XP and 2003 support. (Pierre) |
| 176 | + |
| 177 | +- Calendar: |
| 178 | + . Fixed bug #54254 (cal_from_jd returns month = 6 when there is only one Adar) |
| 179 | + (Stas, Eitan Mosenkis) |
| 180 | + |
| 181 | +- Core: |
| 182 | + . Added boolval(). (Jille Timmermans) |
| 183 | + . Added "Z" option to pack/unpack. (Gustavo) |
| 184 | + . Implemented FR #60738 (Allow 'set_error_handler' to handle NULL). |
| 185 | + (Laruence, Nikita Popov) |
| 186 | + . Added optional second argument for assert() to specify custom message. Patch |
| 187 | + by Lonny Kapelushnik (lonny@lonnylot.com). (Lars) |
| 188 | + . Fixed bug #18556 (Engine uses locale rules to handle class names). (Stas) |
| 189 | + . Fixed bug #61681 (Malformed grammar). (Nikita Popov, Etienne, Laruence) |
| 190 | + . Fixed bug #61038 (unpack("a5", "str\0\0") does not work as expected). |
| 191 | + (srgoogleguy, Gustavo) |
| 192 | + . Return previous handler when passing NULL to set_error_handler and |
| 193 | + set_exception_handler. (Nikita Popov) |
| 194 | + |
| 195 | +- cURL: |
| 196 | + . Added support for CURLOPT_FTP_RESPONSE_TIMEOUT, CURLOPT_APPEND, |
| 197 | + CURLOPT_DIRLISTONLY, CURLOPT_NEW_DIRECTORY_PERMS, CURLOPT_NEW_FILE_PERMS, |
| 198 | + CURLOPT_NETRC_FILE, CURLOPT_PREQUOTE, CURLOPT_KRBLEVEL, CURLOPT_MAXFILESIZE, |
| 199 | + CURLOPT_FTP_ACCOUNT, CURLOPT_COOKIELIST, CURLOPT_IGNORE_CONTENT_LENGTH, |
| 200 | + CURLOPT_CONNECT_ONLY, CURLOPT_LOCALPORT, CURLOPT_LOCALPORTRANGE, |
| 201 | + CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPT_SSL_SESSIONID_CACHE, |
| 202 | + CURLOPT_FTP_SSL_CCC, CURLOPT_HTTP_CONTENT_DECODING, |
| 203 | + CURLOPT_HTTP_TRANSFER_DECODING, CURLOPT_PROXY_TRANSFER_MODE, |
| 204 | + CURLOPT_ADDRESS_SCOPE, CURLOPT_CRLFILE, CURLOPT_ISSUERCERT, |
| 205 | + CURLOPT_USERNAME, CURLOPT_PASSWORD, CURLOPT_PROXYUSERNAME, |
| 206 | + CURLOPT_PROXYPASSWORD, CURLOPT_NOPROXY, CURLOPT_SOCKS5_GSSAPI_NEC, |
| 207 | + CURLOPT_SOCKS5_GSSAPI_SERVICE, CURLOPT_TFTP_BLKSIZE, |
| 208 | + CURLOPT_SSH_KNOWNHOSTS, CURLOPT_FTP_USE_PRET, CURLOPT_MAIL_FROM, |
| 209 | + CURLOPT_MAIL_RCPT, CURLOPT_RTSP_CLIENT_CSEQ, CURLOPT_RTSP_SERVER_CSEQ, |
| 210 | + CURLOPT_RTSP_SESSION_ID, CURLOPT_RTSP_STREAM_URI, CURLOPT_RTSP_TRANSPORT, |
| 211 | + CURLOPT_RTSP_REQUEST, CURLOPT_RESOLVE, CURLOPT_ACCEPT_ENCODING, |
| 212 | + CURLOPT_TRANSFER_ENCODING, CURLOPT_DNS_SERVERS and CURLOPT_USE_SSL. |
| 213 | + (Pierrick) |
| 214 | + . Fixed bug #55635 (CURLOPT_BINARYTRANSFER no longer used. The constant |
| 215 | + still exists for backward compatibility but is doing nothing). (Pierrick) |
| 216 | + . Fixed bug #54995 (Missing CURLINFO_RESPONSE_CODE support). (Pierrick) |
| 217 | + |
| 218 | +- Datetime |
| 219 | + . Fixed bug #61642 (modify("+5 weekdays") returns Sunday). |
| 220 | + (Dmitri Iouchtchenko) |
| 221 | + |
| 222 | +- Hash |
| 223 | + . Added support for PBKDF2 via hash_pbkdf2(). (Anthony Ferrara) |
| 224 | + |
| 225 | +- Intl |
| 226 | + . The intl extension now requires ICU 4.0+. |
| 227 | + . Added intl.use_exceptions INI directive, which controls what happens when |
| 228 | + global errors are set together with intl.error_level. (Gustavo) |
| 229 | + . MessageFormatter::format() and related functions now accepted named |
| 230 | + arguments and mixed numeric/named arguments in ICU 4.8+. (Gustavo) |
| 231 | + . MessageFormatter::format() and related functions now don't error out when |
| 232 | + an insufficient argument count is provided. Instead, the placeholders will |
| 233 | + remain unsubstituted. (Gustavo) |
| 234 | + . MessageFormatter::parse() and MessageFormat::format() (and their static |
| 235 | + equivalents) don't throw away better than second precision in the arguments. |
| 236 | + (Gustavo) |
| 237 | + . IntlDateFormatter::__construct and datefmt_create() now accept for the |
| 238 | + $timezone argument time zone identifiers, IntlTimeZone objects, DateTimeZone |
| 239 | + objects and NULL. (Gustavo) |
| 240 | + . IntlDateFormatter::__construct and datefmt_create() no longer accept invalid |
| 241 | + timezone identifiers or empty strings. (Gustavo) |
| 242 | + . The default time zone used in IntlDateFormatter::__construct and |
| 243 | + datefmt_create() (when the corresponding argument is not passed or NULL is |
| 244 | + passed) is now the one given by date_default_timezone_get(), not the |
| 245 | + default ICU time zone. (Gustavo) |
| 246 | + . The time zone passed to the IntlDateFormatter is ignored if it is NULL and |
| 247 | + if the calendar passed is an IntlCalendar object -- in this case, the |
| 248 | + IntlCalendar's time zone will be used instead. Otherwise, the time zone |
| 249 | + specified in the $timezone argument is used instead. This does not affect |
| 250 | + old code, as IntlCalendar was introduced in this version. (Gustavo) |
| 251 | + . IntlDateFormatter::__construct and datefmt_create() now accept for the |
| 252 | + $calendar argument also IntlCalendar objects. (Gustavo) |
| 253 | + . IntlDateFormatter::getCalendar() and datefmt_get_calendar() return false |
| 254 | + if the IntlDateFormatter was set up with an IntlCalendar instead of the |
| 255 | + constants IntlDateFormatter::GREGORIAN/TRADITIONAL. IntlCalendar did not |
| 256 | + exist before this version. (Gustavo) |
| 257 | + . IntlDateFormatter::setCalendar() and datefmt_set_calendar() now also accept |
| 258 | + an IntlCalendar object, in which case its time zone is taken. Passing a |
| 259 | + constant is still allowed, and still keeps the time zone. (Gustavo) |
| 260 | + . IntlDateFormatter::setTimeZoneID() and datefmt_set_timezone_id() are |
| 261 | + deprecated. Use IntlDateFormatter::setTimeZone() or datefmt_set_timezone() |
| 262 | + instead. (Gustavo) |
| 263 | + . IntlDateFormatter::format() and datefmt_format() now also accept an |
| 264 | + IntlCalendar object for formatting. (Gustavo) |
| 265 | + . Added the classes: IntlCalendar, IntlGregorianCalendar, IntlTimeZone, |
| 266 | + IntlBreakIterator, IntlRuleBasedBreakIterator and |
| 267 | + IntlCodePointBreakIterator. (Gustavo) |
| 268 | + . Added the functions: intlcal_get_keyword_values_for_locale(), |
| 269 | + intlcal_get_now(), intlcal_get_available_locales(), intlcal_get(), |
| 270 | + intlcal_get_time(), intlcal_set_time(), intlcal_add(), |
| 271 | + intlcal_set_time_zone(), intlcal_after(), intlcal_before(), intlcal_set(), |
| 272 | + intlcal_roll(), intlcal_clear(), intlcal_field_difference(), |
| 273 | + intlcal_get_actual_maximum(), intlcal_get_actual_minimum(), |
| 274 | + intlcal_get_day_of_week_type(), intlcal_get_first_day_of_week(), |
| 275 | + intlcal_get_greatest_minimum(), intlcal_get_least_maximum(), |
| 276 | + intlcal_get_locale(), intlcal_get_maximum(), |
| 277 | + intlcal_get_minimal_days_in_first_week(), intlcal_get_minimum(), |
| 278 | + intlcal_get_time_zone(), intlcal_get_type(), |
| 279 | + intlcal_get_weekend_transition(), intlcal_in_daylight_time(), |
| 280 | + intlcal_is_equivalent_to(), intlcal_is_lenient(), intlcal_is_set(), |
| 281 | + intlcal_is_weekend(), intlcal_set_first_day_of_week(), |
| 282 | + intlcal_set_lenient(), intlcal_equals(), |
| 283 | + intlcal_get_repeated_wall_time_option(), |
| 284 | + intlcal_get_skipped_wall_time_option(), |
| 285 | + intlcal_set_repeated_wall_time_option(), |
| 286 | + intlcal_set_skipped_wall_time_option(), intlcal_from_date_time(), |
| 287 | + intlcal_to_date_time(), intlcal_get_error_code(), |
| 288 | + intlcal_get_error_message(), intlgregcal_create_instance(), |
| 289 | + intlgregcal_set_gregorian_change(), intlgregcal_get_gregorian_change() and |
| 290 | + intlgregcal_is_leap_year(). (Gustavo) |
| 291 | + . Added the functions: intltz_create_time_zone(), intltz_create_default(), |
| 292 | + intltz_get_id(), intltz_get_gmt(), intltz_get_unknown(), |
| 293 | + intltz_create_enumeration(), intltz_count_equivalent_ids(), |
| 294 | + intltz_create_time_zone_id_enumeration(), intltz_get_canonical_id(), |
| 295 | + intltz_get_region(), intltz_get_tz_data_version(), |
| 296 | + intltz_get_equivalent_id(), intltz_use_daylight_time(), intltz_get_offset(), |
| 297 | + intltz_get_raw_offset(), intltz_has_same_rules(), intltz_get_display_name(), |
| 298 | + intltz_get_dst_savings(), intltz_from_date_time_zone(), |
| 299 | + intltz_to_date_time_zone(), intltz_get_error_code(), |
| 300 | + intltz_get_error_message(). (Gustavo) |
| 301 | + . Added the methods: IntlDateFormatter::formatObject(), |
| 302 | + IntlDateFormatter::getCalendarObject(), IntlDateFormatter::getTimeZone(), |
| 303 | + IntlDateFormatter::setTimeZone(). (Gustavo) |
| 304 | + . Added the functions: datefmt_format_object(), datefmt_get_calendar_object(), |
| 305 | + datefmt_get_timezone(), datefmt_set_timezone(), |
| 306 | + datefmt_get_calendar_object(), intlcal_create_instance(). (Gustavo) |
| 307 | + |
| 308 | +- MCrypt |
| 309 | + . mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() and mcrypt_ofb() now throw |
| 310 | + E_DEPRECATED. (GoogleGuy) |
| 311 | + |
| 312 | +- MySQLi |
| 313 | + . Dropped support for LOAD DATA LOCAL INFILE handlers when using libmysql. |
| 314 | + Known for stability problems. (Andrey) |
| 315 | + . Added support for SHA256 authentication available with MySQL 5.6.6+. |
| 316 | + (Andrey) |
| 317 | + |
| 318 | +- PCRE: |
| 319 | + . Deprecated the /e modifier |
| 320 | + (https://wiki.php.net/rfc/remove_preg_replace_eval_modifier). (Nikita Popov) |
| 321 | + . Fixed bug #63284 (Upgrade PCRE to 8.31). (Anatoliy) |
| 322 | + |
| 323 | +- pgsql |
| 324 | + . Added pg_escape_literal() and pg_escape_identifier() (Yasuo) |
| 325 | + |
| 326 | +- SPL |
| 327 | + . Fix bug #60560 (SplFixedArray un-/serialize, getSize(), count() return 0, |
| 328 | + keys are strings). (Adam) |
| 329 | + |
| 330 | +- Tokenizer: |
| 331 | + . Fixed bug #60097 (token_get_all fails to lex nested heredoc). (Nikita Popov) |
| 332 | + |
| 333 | +- Zip: |
| 334 | + . Upgraded libzip to 0.10.1 (Anatoliy) |
| 335 | + |
| 336 | +- Fileinfo: |
| 337 | + . Fixed bug #63248 (Load multiple magic files from a directory under Windows). |
| 338 | + (Anatoliy) |
| 339 | + |
| 340 | +- General improvements: |
| 341 | + . Implemented FR #46487 (Dereferencing process-handles no longer waits on |
| 342 | + those processes). (Jille Timmermans) |
| 343 | + |
| 344 | +<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>> |
0 commit comments