Представлена (http://www.php.net/index.php#id2012-11-15-1) первая альфа-версия новой значительной ветки интерпретатора языка программирования PHP 5.5, в которой добавлены новые языковые конструкции и удалены устаревшие возможности.
Среди наиболее заметных изменений (https://github.com/php/php-src/blob/php-5.5.0alpha1/NEWS):
- Добавлен (https://wiki.php.net/rfc/password_hash) новый API для хэширования паролей, предоставляющий застрахованные от ошибок разработчиков и более простые в использовании высокоуровневые функции для генерации и проверки валидности паролей по хэшам. Основное отличие нового API в том, что он берёт на себя генерацию надёжных хэшей, скрывая от разработчика операции ручного указания salt-а и выбора алгоритма хэширования (по умолчанию используется Bcrypt). Создание хэша сведено к выполнению "$hash = password_hash($password, PASSWORD_DEFAULT);", а проверка к вызову "password_verify($password, $hash)". В качестве причины внедрения нового API называется безалаберное отношение многих разработчиков к генерации salt-ов и повсеместный выбор нестойких к перебору алгоритмов хэширования;
- Поддержка сопрограмм (coroutine) и генераторов (https://wiki.php.net/rfc/generators) (generator), предоставляющих простой и не требующий создания шаблонов способ реализации итераторов;
- Поддержка (https://wiki.php.net/rfc/finally) расширяющего возможности блоков исключений try/catch ключевого слова "finally", выполняемого после завершения выполнения блока try, что гарантирует, что заданный в секции finally код будет выполнен в последнюю очередь после всех остальных обработчиков исключений;
- Поддержка (https://wiki.php.net/rfc/foreachlist) указания list() внутри блока foreach (), что позволяет организовать не требующий создания отдельных временных переменных перебор масивов;
- Возможность разыменования констант для строк и массивов;
- Улучшение модуля ext/intl со средствами интернационализации;
- Возможность (https://wiki.php.net/rfc/empty_isset_exprs) использования empty() и isset() над результатом работы функции и произвольными выражениями (например, empty(foo()));
- Прекращение поддержки Windows XP и Windows 2003.
- Прекращение поддержки устаревших функций: php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid(),
zend_logo_guid().
URL: http://www.php.net/index.php#id2012-11-15-1
Новость: https://www.opennet.ru/opennews/art.shtml?num=35344