Релиз языка программирования PHP 5.6.0
Опубликовано 28 Август 2014 19:32:39
Представлен новый значительный релиз языка программирования PHP 5.6.0. В версии PHP 5.6.0 добавлены константные скалярные выражения, функции с переменным числом аргументов, импорт функций и констант при помощи оператора use, оператор возведения в степень, интерактивный отладчик phpdbg. Следующим шагом развития языка PHP станет воплощение идей по существенному увеличению производительности движка Zend Engine и изменению методов работы с памятью, развиваемых в рамках экспериментальной ветки PHPNG.
Источник: http://www.opennet.ru/opennews/art.shtml?num=40480
Ключевые новшества:
- Константные скалярные выражения (constant scalar expressions), допускающие применение операций над числовыми или строковыми литералами и константами в контексте, предусмотренном для статических значений, таком как определение констант или значений по умолчанию аргументов функций. Например, "const ONE = 1; const TWO = ONE + 1;"
- Функции с переменным числом аргументов (Variadic function), при определении которых явно не указывается число передаваемых аргументов. Например, функцию "function f($req, $opt = null, ...$params)" можно вызывать как f(1, 2), f(1, 2, 3, 4, 5) и т.п., где $req является обязательным аргументом, $opt - опциональным, а все дополнительные аргументы передаются в форме массива $params.
- Распаковка массивов или перечисляемых объектов в вид набора аргументов при вызове функции, используя оператор "...". Например, "$operators = [2, 3]; echo add(1, ...$operators);", где add является функцией трёх аргументов;
- Возможность использования оператора use для импорта функций и констант, в дополнение к импорту классов. Например, "namespace { use function Name\Space\f;...." для импорта в текущее пространство имён функции f, определённой в пространстве имён Name\Space;
- Новый интерактивный отладчик phpdbg, выполненный в форме модуля SAPI;
- Возможность повторного использования ввода php://input, который теперь может быть переоткрыт и прочитан более одного раза. Изменение также привело к значительному сокращению потребления памяти при обработке данных, переданных через метод POST. Переменная $HTTP_RAW_POST_DATA причислена к устаревшим возможностям;
- Для объектов GMP обеспечена возможность перегрузки оператора и приведения скалярных типов;
- Поддержка загрузки файлов размером больше 2GiB;
- Добавлен новый математический оператор "**", применяемый для возведения в степень. Например, "$a ** $b" - возвести $a в степень $b;
- Улучшение поддержки SSL/TLS. В частности, в расширении OpenSSL добавлена возможность извлечения и проверки подписи (fingerprint) сертификатов. Для извлечения подписи из сертификатов X.509 добавлена функция openssl_x509_fingerprint(). Для SSL-потоков добавлены две контекстные опции: capture_peer_cert для захвата сертификата X.509 и peer_fingerprint для проверки его соответствия заданной подписи. Кроме того, добавлена поддержка выбора криптографических методов, таких как SSLv3 и TLS, через установку контекстной опции crypto_method, поддерживающей значения STREAM_CRYPTO_METHOD_SSLv2_CLIENT, STREAM_CRYPTO_METHOD_SSLv3_CLIENT, STREAM_CRYPTO_METHOD_SSLv23_CLIENT (по умолчанию) и STREAM_CRYPTO_METHOD_TLS_CLIENT;
- Поддержка алгоритма хэширования gost-crypto;
- Добавлен новый скрытый метод __debugInfo(), предоставляющий дополнительную отладочную информацию для объекта;
- В FPM SAPI реализована опция конфигурации clear_env для очистки переменных окружения;
- Новые функции hash_equals() и opcache_is_script_cached();
- Упрощена обработка кодировки на выходе через использование в качестве кодировки по умолчанию значения default_charset;
- В расширение mysqlnd добавлен новый метод извлечения данных, примечательный меньшим потреблением памяти за счёт большего числа операций копирования блоков памяти;
- В расширение PCRE добавлена поддержка маркеров;
- В расширение Pgsql добавлена поддержка выполнения запросов и соединений в асинхронном режиме;
- Изменения, нарушающие совместимость:
- Ключи массива не могут быть перезаписаны при определении массива в качестве свойства класса с использованием литерала array;
- Обеспечена более строгая проверка синтаксиса JSON в функции json_decode();
- Обвязки для потоков теперь по умолчанию выполняют верификацию сертификата и имени хоста пира при использовании SSL/TLS;
- Все ресурсы GMP теперь являются объектами;
- Расширение mcrypt теперь требует указания корректных ключей и векторов инициализации.
Источник: http://www.opennet.ru/opennews/art.shtml?num=40480
|
0 | Tweet | Нравится |
|