Выпуски PHP 5.6.11, 5.5.27 и 5.4.43 с устранением уязвимостей. Бета-версия PHP 7.0.0

Доступны корректирующие выпуски языка программирования PHP 5.6.11, 5.5.27 и 5.4.43, в которых устранены пять уязвимостей и исправлено около десяти ошибок. В том числе в mysqlnd исправлена проблема CVE-2015-3152, позволяющая обойти создание шифрованного канала связи и организовать MITM-атаку между клиентом и СУБД. Также устранены уязвимости в модулях Sqlite3 и SPL.

Одновременно представлена первая бета-версия PHP 7.0.0, которая ознаменовала собой заморозку кодовой базы от значительных изменений.

Ключевые улучшения в PHP 7:

  • Существенное увеличение производительности, благодаря применению новых методов организации работы с памятью и переходу на новые структуры хранения данных. В некоторых тестах PHP 7 до двух раз быстрее PHP 5.6;
  • Целостная поддержка 64-разрядных типов на 64-разрядных системах. В том числе возможность использования строк, размером до 2^31 байт, поддержка 64-разрядных значений integer при работе в Windows, поддержка больших файлов в 64-разрядных сборках.
  • Возможность обработки через исключения многих ошибок, ранее приводивших к принудительному завершению работы;
  • Новый оператор "??", позволяющий определить альтернативное значение, в случае если неопределён первичный объект присвоения. Например, для присвоения пустой строки, если не заполнен элемент ассоциативного массива теперь вместо isset($_GET['mykey']) ? $_GET['mykey'] : '' можно указать $_GET['mykey'] ?? "";
  • Возможность явного определения скалярных типов int, float, string и bool для аргументов и значений функций (например, "function foo(int $abc): int").
  • Режим жесткой проверки типов, включаемый директивой "declare(strict_types=1)", при котором несоответствие типа передаваемого функции или возвращаемого функцией значения будет приводить к ошибке.
  • Новый оператор комбинированного сравнения "<=>" с реализацией поведения, похожего на strcmp() и version_compare(), но через использование типового синтаксиса операторов сравнения. В частности, новый оператор позволяет не только проверить идентичность операндов, но и оценить какой из них больше другого (0 - равны, 1 - левый больше, -1 - правый больше);
  • Поддержка анонимных классов;
  • Поддержка группировки определений в операторе use (например, use Doctrine\Common\Collections\Expr\{ Comparison, Value, CompositeExpression };);
  • Новый метод Closure::call();
  • Дополнительный синтакс для встраивания unicode-строк \u{xxxxxx};
  • Поддержка задания массивов констант в операторе define();
  • Возможность использования зарезервированных ключевых слов в новых контекстах (например, можно определить функцию forEach и она не будет пересекаться с оператором foreach);
  • Новый синтаксис "yield from выражение" для делегирования фукциями-генераторами операций в перемещаемые объекты и массивы.
  • В дополнение openssl добавлена поддержка TLS-расширения я ALPN (Application-Layer Protocol Negotiation) для согласования протоколов уровня приложений, используемых для обеспечения защищённого соединения. Используется в SPDY и HTTP/2;
  • Унификация синтаксиса определения переменных и переход к использованию AST (Abstract Syntax Tree). Изменение некоторой редко используемой семантики комбинирования переменных (например, $foo->$bar['baz'] теперь интерпретируется как ($foo->$bar)['baz'], а не $foo->{$bar['baz']}). Достаточно большая порция изменений, нарушающих совместимость;
  • Прекращение поддержки старых и не поддерживаемых вызовов SAPI и расширений: sapi/aolserver, sapi/apache sapi/apache_hooks, sapi/apache2filter, sapi/caudium, sapi/continuity, sapi/isapi, sapi/milter, sapi/nsapi, sapi/phttpd, sapi/pi3web, sapi/roxen , sapi/thttpd, sapi/tux, sapi/webjames, ext/mssql и ext/sybase_ct;


Источник:
http://www.opennet.ru/opennews/art.shtml?num=42596

<= Назад
Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>