Выпущен PHP 5.5.0


PHP прошел долгий путь с момента своего первого выпуска, и теперь у нас есть версия 5.5 с некоторыми интересными сложными новыми функциями.

PHP 5.5 готов для загрузки и установки, а исходный код готов для чтения. Для обновления с десятичной запятой есть много новых функций. 

С точки зрения языка, PHP приобрел некоторые “современные” функции. Теперь вы можете использовать генераторы для реализации итерации по пользовательским данным. PHP вводит команду yield, которая знакома с другими языками.

Генератор-это просто стандартная функция с командой значения выхода вместо возврата. При первом вызове генератора он возвращает итератор, который можно использовать в цикле foreach. При использовании в цикле foreach вызывается функция генератора, которая возвращает значение, указанное в выходе, в качестве значения, используемого в цикле. Когда цикл повторяется, генератор возобновляется по инструкции, следующей за выходом, обеспечивая таким образом последовательность значений. 

Например:

функция genseq() { $i=1; доходность $i; $i=6; доходность $i; $i=27; доходность $i;}

генерирует последовательность 1,6,27 и может использоваться в цикле foreach как 

$generator = genseq();foreach ($generator как $value) {    echo “$value\n”;}

или проще говоря

foreach ($genseq() как $значение) {    echo “$value\n”;}

Есть много других вещей, которые нужно узнать о yield и о том, как его можно использовать для создания сложных итеративных решений и управления асинхронными вызовами в качестве формы передачи продолжения.

Добавление генераторов, безусловно, является самым большим изменением в основном языке, но стоит отметить, что PHP наконец-то появился.

Программисты PHP ждали предложения finally в исключениях почти так же долго, как я ждал, чтобы написать предложение “finally finally”. Он добавляет структуру, которая слишком долго отсутствовала в PHP.  Код в блоке finally выполняется независимо от того, что – т. Е. Независимо от того, работает ли код в блоке try или вызывает исключение. Это дает возможность очистить, работает ли код или он не работает. 

Еще одним важным изменением является новый API хэширования паролей. Учитывая, насколько важна безопасность, тот факт, что теперь для создания соленого пароля требуется одна строка;

$hash=password_hash($password,PASSWORD_DEFAULT)’

и одна строчка к верити это:

$bool=password_verify($password,$hash);

это большое преимущество.

Криптография не становится легче.

Под прикрытием новый API использует Bcrypt, который обеспечивает очень безопасный хэш, который должен обеспечивать безопасность паролей при условии, что они достаточно длинные.

Есть ряд других незначительных дополнений к языку:

поддержка функции list() в foreach

разыменование постоянных массивов/строк

улучшение ext/intl

поддержка использования функции empty() в результате вызовов функций и других выражений

Большим изменением в операционной среде является добавление Zend Optimizer+, который был открыт в начале года. Теперь это часть основного дистрибутива OPcache, и он улучшает генерацию байт-кода и кэширует код в общей памяти. 

Конечно, при любом изменении языка, скорее всего, возникнут несовместимости. Единственными перечисленными являются потеря GUID логотипа PHP, какими бы они ни были, и изменение на соответствие с учетом регистра. Раньше это зависело от локали, но теперь оно применяется независимо от локали. 

Это также может повлиять на некоторых пользователей, которые больше не поддерживают Windows XP. Однако не может быть много систем Windows XP, действующих в качестве веб-серверов, и поэтому число затронутых должно быть небольшим. 

Наконец, если вы поторопитесь, у вас есть возможность добавить первые комментарии к некоторым страницам документации PHP, которые на момент написания статьи выглядят необычно голыми!


Добавить комментарий