<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Релиз PHP 5.5.0]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=28766</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=28766&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Релиз PHP 5.5.0».]]></description>
		<lastBuildDate>Fri, 21 Jun 2013 05:49:30 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Релиз PHP 5.5.0]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=350975#p350975</link>
			<description><![CDATA[<p>Спустя год и три месяца с момента выхода прошлой ветки PHP <a href="http://news.php.net/php.announce/97">представлен</a> новый значительный релиз языка программирования <a href="http://php.net/">PHP 5.5.0</a>. В версии PHP 5.5.0 добавлены новые языковые конструкции, обеспечена поддержка сопрограмм и генераторов, представлен новый API для хэширования паролей, удалены устаревшие возможности и интегрирован <a href="https://github.com/zend-dev/ZendOptimizerPlus/">Zend Optimizer+</a> (Zend OPcache).</p><p>Основные <a href="http://www.php.net/migration55">особенности</a> PHP 5.5.0:</p><ul><li><p>В состав включена система кэширования и оптимизации байткода Zend Optimizer+, ранее поставляемая в составе проприетарного пакета Zend Server, но недавно переведённая компанией Zend Technologies в разряд свободных проектов. Zend Optimizer+ предоставляет средства для ускорения выполнения скриптов на языке PHP за счёт использования техники кэширования опкода и применения дополнительных оптимизаций. Предкомпилированный код скриптов кэшируется в разделяемой памяти, что позволяет избежать выполнения стадий чтения с диска, разбора и компиляции исходного кода скриптов при их повторном запуске.<br />Кроме того, Zend Optimizer+ включает дополнительные методы оптимизации при генерации байткода, что позволяет достичь ускорения и за счёт более быстрого выполнения байткода. По сравнению с конкурирующей системой APC, Zend Optimizer+ выигрывает по производительности в среднем на 5-20%, обеспечивает лучшую совместимость с различными ветками и возможностями языка PHP, а также содержит средства для выявления повреждения данных (например, из-за некорректно написанной PHP-функции на языке C).</p></li><li><p><a href="https://wiki.php.net/rfc/password_hash">Добавлен</a> новый API для хэширования паролей, предоставляющий застрахованные от ошибок разработчиков и более простые в использовании высокоуровневые функции для генерации и проверки валидности паролей по хэшам. Основное отличие нового API в том, что он берёт на себя генерацию надёжных хэшей, скрывая от разработчика операции ручного указания salt-а и выбора алгоритма хэширования (по умолчанию используется Bcrypt). Создание хэша сведено к выполнению &quot;$hash = password_hash($password, PASSWORD_DEFAULT);&quot;, а проверка к вызову &quot;password_verify($password, $hash)&quot;. В качестве причины внедрения нового API называется безалаберное отношение многих разработчиков к генерации salt-ов и повсеместный выбор нестойких к перебору алгоритмов хэширования;</p></li><li><p>Поддержка сопрограмм (coroutine) и <a href="http://php.net/generators">генераторов</a> (generator), предоставляющих простой и не требующий создания шаблонов способ реализации итераторов;</p></li><li><p><a href="https://wiki.php.net/rfc/finally">Поддержка</a> ключевого слова &quot;finally&quot;, расширяющего возможности блоков исключений try/catch и выполняемого после завершения выполнения блока try, что гарантирует, что заданный в секции finally код будет выполнен в последнюю очередь после всех остальных обработчиков исключений;</p></li><li><p><a href="https://wiki.php.net/rfc/foreachlist">Поддержка</a> указания list() внутри блока foreach (), что позволяет организовать не требующий создания отдельных временных переменных перебор масивов (например, &quot;foreach ($array as list($a, $b)){...}&quot;);</p></li><li><p>Возможность разыменования констант для строк и массивов (например, &quot;echo &#039;PHP&#039;[0]&quot; или &quot;echo [1, 2, 3][0]&quot;);</p></li><li><p><a href="http://php.net/oop5.basic#language.oop5.basic.class.class">Поддержка</a> разрешения имён скалярных классов через ключевое слово &quot;::class&quot; (например, &quot;echo ClassName::class&quot;);</p></li><li><p>Библиотека GD обновлена до версии 2.1, в которой добавлены новые функции (например, imageflip), улучшена работа доступных ранее возможностей (imagecrop и imagecropauto) и добавлена поддержка формата WebP (функции imagecreatefromwebp, imagewebp);</p></li><li><p>Улучшение модуля ext/intl со средствами интернационализации;</p></li><li><p><a href="https://wiki.php.net/rfc/empty_isset_exprs">Возможность</a> использования empty() и isset() над результатом работы функции и произвольными выражениями (например, empty(foo()));</p></li><li><p>Добавлен метод Generator::throw();</p></li><li><p>Реализована серия новых функций в расширении cURL;</p></li><li><p>Добавлена поддержка атрибута Max-Age в setcookie();</p></li><li><p>Поддержка системы трассировки Systemtap на платформе Linux;</p></li><li><p>Оптимизация доступа к временным и компилированным переменным на уровне VM, что позволило сократить число обращений к памяти на 8%;</p></li><li><p>В php.ini добавлена опция для изменения пути ко временной директории PHP;</p></li><li><p>Добавлены функции mysqli_begin_transaction()/mysqli::begin_transaction();</p></li><li><p>Реализованы все опции mysqli_commit()/mysqli_rollback(), которые могут быть использованы с START TRANSACTION, COMMIT и ROLLBACK в MySQL 5.6;</p></li><li><p>Добавлены функции-врапперы recvmsg() и sendmsg() для ext/sockets;</p></li><li><p>Добавлена функций <a href="https://wiki.php.net/rfc/array_column">array_column</a>, которая возвращает запрошенный столбец из многомерного массива;</p></li><li><p>Добавлена <a href="https://wiki.php.net/rfc/foreach-non-scalar-keys">возможность</a> использования нескалярных итераторов в качестве ключа в цикле foreach (например, &quot;foreach ($iter as $k =&gt; $v)&quot;);</p></li><li><p>Добавлена <a href="https://wiki.php.net/rfc/cli_process_title">поддержка</a> изменения названия процесса через CLI/CLI-Server SAPI функцию cli_set_process_title($title);</p></li><li><p>Поддержка работы SAPI-обработчика Apache 2.4 на платформе Windows;</p></li><li><p>Изменения, нарушающие совместимость:<br /></p><ul><li><p>Реализация игнорирование регистра символов в именах функций, классов и констант теперь не привязывается к локали, а определяется в соответствии с правилами ASCII;</p></li><li><p>Прекращение поддержки Windows XP и Windows 2003.</p></li><li><p>Прекращение поддержки устаревших функций: php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid(), zend_logo_guid();</p></li><li><p>Особенности работы функций pack() и unpack() приведены в соответствие с реализацией из состава Perl;</p></li><li><p>Прекращена поддержка функции <a href="http://php.net/php_logo_guid">php_logo_guid</a>;</p></li><li><p>Расширение ext/mysql объявлено устаревшим, вместо него следует использовать MySQLi или PDO_MySQL.</p></li></ul></li></ul><p>Источник: <a href="http://www.opennet.ru/opennews/art.shtml?num=37239">http://www.opennet.ru/opennews/art.shtml?num=37239</a></p>]]></description>
			<author><![CDATA[null@example.com (pb13)]]></author>
			<pubDate>Fri, 21 Jun 2013 05:49:30 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=350975#p350975</guid>
		</item>
	</channel>
</rss>
