SHOW:
|
|
- or go back to the newest paste.
| 1 | 1 PHP NEWS | |
| 2 | 2 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | |
| 3 | 3 13 Nov 2012, PHP 5.5.0 Alpha 1 | |
| 4 | 4 | |
| 5 | 5 - General improvements: | |
| 6 | 6 . Added support for generators. (Nikita Popov) | |
| 7 | 7 . Add simplified password hashing API | |
| 8 | 8 (https://wiki.php.net/rfc/password_hash). (Anthony Ferrara) | |
| 9 | 9 . Add generators and coroutines (https://wiki.php.net/rfc/generators). | |
| 10 | 10 (Nikita Popov) | |
| 11 | 11 . Support list in foreach (https://wiki.php.net/rfc/foreachlist). (Laruence) | |
| 12 | 12 . Implemented 'finally' keyword (https://wiki.php.net/rfc/finally). (Laruence) | |
| 13 | 13 . Drop Windows XP and 2003 support. (Pierre) | |
| 14 | 14 . Improve set_exception_handler while doing reset.(Laruence) | |
| 15 | 15 . Support constant array/string dereferencing. (Laruence) | |
| 16 | 16 . Add support for using empty() on the result of function calls and | |
| 17 | 17 other expressions (https://wiki.php.net/rfc/empty_isset_exprs). | |
| 18 | 18 (Nikita Popov) | |
| 19 | 19 . Remove php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid(), | |
| 20 | 20 zend_logo_guid(). (Adnrew Faulds) | |
| 21 | 21 | |
| 22 | 22 - Calendar: | |
| 23 | 23 . Fixed bug #54254 (cal_from_jd returns month = 6 when there is only one Adar) | |
| 24 | 24 (Stas, Eitan Mosenkis) | |
| 25 | 25 | |
| 26 | 26 - Core: | |
| 27 | 27 . Added boolval(). (Jille Timmermans) | |
| 28 | 28 . Added "Z" option to pack/unpack. (Gustavo) | |
| 29 | 29 . Implemented FR #60738 (Allow 'set_error_handler' to handle NULL). | |
| 30 | 30 (Laruence, Nikita Popov) | |
| 31 | 31 . Added optional second argument for assert() to specify custom message. Patch | |
| 32 | 32 by Lonny Kapelushnik ([email protected]). (Lars) | |
| 33 | 33 . Fixed bug #18556 (Engine uses locale rules to handle class names). (Stas) | |
| 34 | 34 . Fixed bug #61681 (Malformed grammar). (Nikita Popov, Etienne, Laruence) | |
| 35 | 35 . Fixed bug #61038 (unpack("a5", "str\0\0") does not work as expected).
| |
| 36 | 36 (srgoogleguy, Gustavo) | |
| 37 | 37 . Return previous handler when passing NULL to set_error_handler and | |
| 38 | 38 set_exception_handler. (Nikita Popov) | |
| 39 | 39 | |
| 40 | 40 - cURL: | |
| 41 | 41 . Added support for CURLOPT_FTP_RESPONSE_TIMEOUT, CURLOPT_APPEND, | |
| 42 | 42 CURLOPT_DIRLISTONLY, CURLOPT_NEW_DIRECTORY_PERMS, CURLOPT_NEW_FILE_PERMS, | |
| 43 | 43 CURLOPT_NETRC_FILE, CURLOPT_PREQUOTE, CURLOPT_KRBLEVEL, CURLOPT_MAXFILESIZE, | |
| 44 | 44 CURLOPT_FTP_ACCOUNT, CURLOPT_COOKIELIST, CURLOPT_IGNORE_CONTENT_LENGTH, | |
| 45 | 45 CURLOPT_CONNECT_ONLY, CURLOPT_LOCALPORT, CURLOPT_LOCALPORTRANGE, | |
| 46 | 46 CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPT_SSL_SESSIONID_CACHE, | |
| 47 | 47 CURLOPT_FTP_SSL_CCC, CURLOPT_HTTP_CONTENT_DECODING, | |
| 48 | 48 CURLOPT_HTTP_TRANSFER_DECODING, CURLOPT_PROXY_TRANSFER_MODE, | |
| 49 | 49 CURLOPT_ADDRESS_SCOPE, CURLOPT_CRLFILE, CURLOPT_ISSUERCERT, | |
| 50 | 50 CURLOPT_USERNAME, CURLOPT_PASSWORD, CURLOPT_PROXYUSERNAME, | |
| 51 | 51 CURLOPT_PROXYPASSWORD, CURLOPT_NOPROXY, CURLOPT_SOCKS5_GSSAPI_NEC, | |
| 52 | 52 CURLOPT_SOCKS5_GSSAPI_SERVICE, CURLOPT_TFTP_BLKSIZE, | |
| 53 | 53 CURLOPT_SSH_KNOWNHOSTS, CURLOPT_FTP_USE_PRET, CURLOPT_MAIL_FROM, | |
| 54 | 54 CURLOPT_MAIL_RCPT, CURLOPT_RTSP_CLIENT_CSEQ, CURLOPT_RTSP_SERVER_CSEQ, | |
| 55 | 55 CURLOPT_RTSP_SESSION_ID, CURLOPT_RTSP_STREAM_URI, CURLOPT_RTSP_TRANSPORT, | |
| 56 | 56 CURLOPT_RTSP_REQUEST, CURLOPT_RESOLVE, CURLOPT_ACCEPT_ENCODING, | |
| 57 | 57 CURLOPT_TRANSFER_ENCODING, CURLOPT_DNS_SERVERS and CURLOPT_USE_SSL. | |
| 58 | 58 (Pierrick) | |
| 59 | 59 . Fixed bug #55635 (CURLOPT_BINARYTRANSFER no longer used. The constant | |
| 60 | 60 still exists for backward compatibility but is doing nothing). (Pierrick) | |
| 61 | 61 . Fixed bug #54995 (Missing CURLINFO_RESPONSE_CODE support). (Pierrick) | |
| 62 | 62 | |
| 63 | 63 - Datetime | |
| 64 | 64 . Fixed bug #61642 (modify("+5 weekdays") returns Sunday).
| |
| 65 | 65 (Dmitri Iouchtchenko) | |
| 66 | 66 | |
| 67 | 67 - Hash | |
| 68 | 68 . Added support for PBKDF2 via hash_pbkdf2(). (Anthony Ferrara) | |
| 69 | 69 | |
| 70 | 70 - Intl | |
| 71 | 71 . The intl extension now requires ICU 4.0+. | |
| 72 | 72 . Added intl.use_exceptions INI directive, which controls what happens when | |
| 73 | 73 global errors are set together with intl.error_level. (Gustavo) | |
| 74 | 74 . MessageFormatter::format() and related functions now accepted named | |
| 75 | 75 arguments and mixed numeric/named arguments in ICU 4.8+. (Gustavo) | |
| 76 | 76 . MessageFormatter::format() and related functions now don't error out when | |
| 77 | 77 an insufficient argument count is provided. Instead, the placeholders will | |
| 78 | 78 remain unsubstituted. (Gustavo) | |
| 79 | 79 . MessageFormatter::parse() and MessageFormat::format() (and their static | |
| 80 | 80 equivalents) don't throw away better than second precision in the arguments. | |
| 81 | 81 (Gustavo) | |
| 82 | 82 . IntlDateFormatter::__construct and datefmt_create() now accept for the | |
| 83 | 83 $timezone argument time zone identifiers, IntlTimeZone objects, DateTimeZone | |
| 84 | 84 objects and NULL. (Gustavo) | |
| 85 | 85 . IntlDateFormatter::__construct and datefmt_create() no longer accept invalid | |
| 86 | 86 timezone identifiers or empty strings. (Gustavo) | |
| 87 | 87 . The default time zone used in IntlDateFormatter::__construct and | |
| 88 | 88 datefmt_create() (when the corresponding argument is not passed or NULL is | |
| 89 | 89 passed) is now the one given by date_default_timezone_get(), not the | |
| 90 | 90 default ICU time zone. (Gustavo) | |
| 91 | 91 . The time zone passed to the IntlDateFormatter is ignored if it is NULL and | |
| 92 | 92 if the calendar passed is an IntlCalendar object -- in this case, the | |
| 93 | 93 IntlCalendar's time zone will be used instead. Otherwise, the time zone | |
| 94 | 94 specified in the $timezone argument is used instead. This does not affect | |
| 95 | 95 old code, as IntlCalendar was introduced in this version. (Gustavo) | |
| 96 | 96 . IntlDateFormatter::__construct and datefmt_create() now accept for the | |
| 97 | 97 $calendar argument also IntlCalendar objects. (Gustavo) | |
| 98 | 98 . IntlDateFormatter::getCalendar() and datefmt_get_calendar() return false | |
| 99 | 99 if the IntlDateFormatter was set up with an IntlCalendar instead of the | |
| 100 | 100 constants IntlDateFormatter::GREGORIAN/TRADITIONAL. IntlCalendar did not | |
| 101 | 101 exist before this version. (Gustavo) | |
| 102 | 102 . IntlDateFormatter::setCalendar() and datefmt_set_calendar() now also accept | |
| 103 | 103 an IntlCalendar object, in which case its time zone is taken. Passing a | |
| 104 | 104 constant is still allowed, and still keeps the time zone. (Gustavo) | |
| 105 | 105 . IntlDateFormatter::setTimeZoneID() and datefmt_set_timezone_id() are | |
| 106 | 106 deprecated. Use IntlDateFormatter::setTimeZone() or datefmt_set_timezone() | |
| 107 | 107 instead. (Gustavo) | |
| 108 | 108 . IntlDateFormatter::format() and datefmt_format() now also accept an | |
| 109 | 109 IntlCalendar object for formatting. (Gustavo) | |
| 110 | 110 . Added the classes: IntlCalendar, IntlGregorianCalendar, IntlTimeZone, | |
| 111 | 111 IntlBreakIterator, IntlRuleBasedBreakIterator and | |
| 112 | 112 IntlCodePointBreakIterator. (Gustavo) | |
| 113 | 113 . Added the functions: intlcal_get_keyword_values_for_locale(), | |
| 114 | 114 intlcal_get_now(), intlcal_get_available_locales(), intlcal_get(), | |
| 115 | 115 intlcal_get_time(), intlcal_set_time(), intlcal_add(), | |
| 116 | 116 intlcal_set_time_zone(), intlcal_after(), intlcal_before(), intlcal_set(), | |
| 117 | 117 intlcal_roll(), intlcal_clear(), intlcal_field_difference(), | |
| 118 | 118 intlcal_get_actual_maximum(), intlcal_get_actual_minimum(), | |
| 119 | 119 intlcal_get_day_of_week_type(), intlcal_get_first_day_of_week(), | |
| 120 | 120 intlcal_get_greatest_minimum(), intlcal_get_least_maximum(), | |
| 121 | 121 intlcal_get_locale(), intlcal_get_maximum(), | |
| 122 | 122 intlcal_get_minimal_days_in_first_week(), intlcal_get_minimum(), | |
| 123 | 123 intlcal_get_time_zone(), intlcal_get_type(), | |
| 124 | 124 intlcal_get_weekend_transition(), intlcal_in_daylight_time(), | |
| 125 | 125 intlcal_is_equivalent_to(), intlcal_is_lenient(), intlcal_is_set(), | |
| 126 | 126 intlcal_is_weekend(), intlcal_set_first_day_of_week(), | |
| 127 | 127 intlcal_set_lenient(), intlcal_equals(), | |
| 128 | 128 intlcal_get_repeated_wall_time_option(), | |
| 129 | 129 intlcal_get_skipped_wall_time_option(), | |
| 130 | 130 intlcal_set_repeated_wall_time_option(), | |
| 131 | 131 intlcal_set_skipped_wall_time_option(), intlcal_from_date_time(), | |
| 132 | 132 intlcal_to_date_time(), intlcal_get_error_code(), | |
| 133 | 133 intlcal_get_error_message(), intlgregcal_create_instance(), | |
| 134 | 134 intlgregcal_set_gregorian_change(), intlgregcal_get_gregorian_change() and | |
| 135 | 135 intlgregcal_is_leap_year(). (Gustavo) | |
| 136 | 136 . Added the functions: intltz_create_time_zone(), intltz_create_default(), | |
| 137 | 137 intltz_get_id(), intltz_get_gmt(), intltz_get_unknown(), | |
| 138 | 138 intltz_create_enumeration(), intltz_count_equivalent_ids(), | |
| 139 | 139 intltz_create_time_zone_id_enumeration(), intltz_get_canonical_id(), | |
| 140 | 140 intltz_get_region(), intltz_get_tz_data_version(), | |
| 141 | 141 intltz_get_equivalent_id(), intltz_use_daylight_time(), intltz_get_offset(), | |
| 142 | 142 intltz_get_raw_offset(), intltz_has_same_rules(), intltz_get_display_name(), | |
| 143 | 143 intltz_get_dst_savings(), intltz_from_date_time_zone(), | |
| 144 | 144 intltz_to_date_time_zone(), intltz_get_error_code(), | |
| 145 | 145 intltz_get_error_message(). (Gustavo) | |
| 146 | 146 . Added the methods: IntlDateFormatter::formatObject(), | |
| 147 | 147 IntlDateFormatter::getCalendarObject(), IntlDateFormatter::getTimeZone(), | |
| 148 | 148 IntlDateFormatter::setTimeZone(). (Gustavo) | |
| 149 | 149 . Added the functions: datefmt_format_object(), datefmt_get_calendar_object(), | |
| 150 | 150 datefmt_get_timezone(), datefmt_set_timezone(), | |
| 151 | 151 datefmt_get_calendar_object(), intlcal_create_instance(). (Gustavo) | |
| 152 | 152 | |
| 153 | 153 - MCrypt | |
| 154 | 154 . mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() and mcrypt_ofb() now throw | |
| 155 | 155 E_DEPRECATED. (GoogleGuy) | |
| 156 | 156 | |
| 157 | 157 - MySQLi | |
| 158 | 158 . Dropped support for LOAD DATA LOCAL INFILE handlers when using libmysql. | |
| 159 | 159 Known for stability problems. (Andrey) | |
| 160 | 160 . Added support for SHA256 authentication available with MySQL 5.6.6+. (Andrey) | |
| 161 | 161 | |
| 162 | 162 - PCRE: | |
| 163 | 163 . Deprecated the /e modifier | |
| 164 | 164 (https://wiki.php.net/rfc/remove_preg_replace_eval_modifier). (Nikita Popov) | |
| 165 | 165 . Fixed bug #63284 (Upgrade PCRE to 8.31). (Anatoliy) | |
| 166 | 166 | |
| 167 | 167 - pgsql | |
| 168 | 168 . Added pg_escape_literal() and pg_escape_identifier() (Yasuo) | |
| 169 | 169 | |
| 170 | 170 - SPL | |
| 171 | 171 . Fix bug #60560 (SplFixedArray un-/serialize, getSize(), count() return 0, | |
| 172 | 172 keys are strings). (Adam) | |
| 173 | 173 | |
| 174 | 174 - Tokenizer: | |
| 175 | 175 . Fixed bug #60097 (token_get_all fails to lex nested heredoc). (Nikita Popov) | |
| 176 | 176 | |
| 177 | 177 - Zip: | |
| 178 | 178 . Upgraded libzip to 0.10.1 (Anatoliy) | |
| 179 | 179 | |
| 180 | 180 - Fileinfo: | |
| 181 | 181 . Fixed bug #63248 (Load multiple magic files from a directory under Windows). | |
| 182 | 182 (Anatoliy) | |
| 183 | 183 | |
| 184 | 184 <<< NOTE: Insert NEWS from last stable release here prior to actual release! >>> |