Яркое будущее Magento с Php 7
Яркое будущее Magento с Php 7
Основные особенности PHP 7
Полный набор нововведений PHP 7 до сих пор не определен. Но по некоторым уже можно сказать, т.к. К. Они уже реализованы. С другой можно только предполагать, исходя из звуковых характеристик.
Кстати, еще до выхода PHP 7 весьма вероятно, что PHP 5.7.
1. Огромные улучшения производительности
Основная цель заключалась в том, чтобы улучшить производительность PHPNG, по крайней мере, чтобы соответствовать тому, что обеспечивает HHVM на Facebook.
Сураски Бонд (Зеев Сураски) из Zend написал статью, в которой открыто признает, что использовал HHVM в качестве конкурента (Zend Engine, на основе) PHP. Это просто подтверждает, что выпуск HHVM, а затем взлом Facebook вызвал огромный интерес Zend к продолжению сохранения ведущего воплощения PHP.
В этой статье также показано, насколько далеко ветвь PHPNG эволюционировала с точки зрения повышения производительности.
2. JIT-движок
По словам Дмитрия Стогова (Dmitry Stogov) из Zend, разработка PHPNG была начата с мотивацией изучить внедрение JIT-движка для Zend Engine, основанного на PHP.
Механизм JIT может динамически компилировать коды операций (коды операций) в собственный машинный код, что в конечном итоге заставит код работать быстрее при следующем его выполнении.
Хотя внедрение JIT-движка не происходит в ветке PHPNG, Дмитрий в мае упомянул, что он «потратил значительное количество времени на эксперименты с JIT и даже создал PoC (Proof of concept – прототип) LLVM, основанный на встроенный в OPCache JIT-компилятор ».
Следовательно, это определенно входит в планы по внедрению движка Zend allow JIT в PHP 7, согласно облигации, чтобы Сураски (Зеев Сураски) мог «пробить потолок уже достигнутой производительности для и без того слишком быстрой реализации».
3. AST: Abstract Syntax Tree (абстрактное синтаксическое дерево)
Недавно Никита Попов (Nikita Popov) предложил введение создания абстрактного синтаксического дерева в качестве промежуточного шага в процессе компиляции PHP.
Никита не впервые предлагает ввести этап компиляции AST. Он уже предлагал это в 2012 году.
AST предоставит несколько преимуществ, которые он описывает в своих предложениях, включая возможность дальнейшей оптимизации, которая заставит PHP работать еще быстрее.
В последнем предложении он описывает возможность открытия расширений AST PHP и приложений пользовательского уровня. Это может открыть дверь для более интересных инструментов, таких как статические анализаторы кода, которые часто полезны для определения источников ошибок или уровня возможностей для оптимизации вашего PHP-кода.
Никита предложил патч для поддержки реализации AST в ветке PHPNG
4. Асинхронное программирование.
Очевидно, что это не для всех, но недавно Жюльен Поли (Julien Pauli), один из последних выпусков, сопровождающих PHP, прокомментировал уровни реорганизации, мультиплексирующие PHP I / O (ввод-вывод).
Это кажется необходимым шагом для реализации событий цикла. Цикл событий – фрагмент кода, который заботится о событиях, связанных с операциями перехвата ввода-вывода (ввод-вывод) и другими асинхронными задачами, которые могут выполняться параллельно, например, доступ к файлам, сетям, базам данных, таймеры и др.
Проще говоря, это позволит в будущих версиях PHP легко реализовать поддержку параллельного выполнения задач в рамках одного запроса, так что сделайте прорыв в потенциале повышения производительности PHP на совершенно новом уровне.
Конечно, вы не получите автоматического повышения производительности, просто включив поддержку асинхронного программирования. Новый PHP-код должен быть написан таким образом, чтобы использовать потенциал асинхронного программирования.
Несмотря на первоначальные усилия Джины Филдс, это не означает, что будет использоваться поддержка встроенного асинхронного программирования в PHP 7.
Однако, поскольку Facebook Hack уже предоставляет поддержку асинхронного программирования очень элегантным способом, я не удивлюсь, если разработчики ядра PHP будут двигаться быстрее к созданию асинхронного программирования на PHP, и это будет доступно рано или поздно.
5. Автономный многопоточный веб-сервер.
Кажется, это не входит в планы для PHP 7, но это то, что может сделать PHP более масштабируемым.
PHP, возможно, уже использует работающие многопоточные веб-серверы, такие как ngynx, lighttpd или Apache, однако это не то же самое, что наличие работающего PHP на вашем собственном многопоточном веб-сервере.
Многопоточный веб-сервер может обрабатывать множество одновременных запросов с использованием единого пула хранения, что позволяет избежать потери памяти, которая возникает, когда PHP работает в режиме FastCGI или предварительном форке Apache.
Это также позволит PHP использовать единый пул соединений с базой данных, т.е. A. Минимизация количества одновременных открытых подключений к базе данных во время пикового доступа.
HHVM уже можно запускать как автономный многопоточный веб-сервер с тех времен, когда проект назывался HipHop PHP compiler.
Это позволяет уменьшить количество битов серверов Facebook, необходимых для работы в режиме доступа с высокой нагрузкой.
К сожалению, запуск PHP в качестве автономного многопоточного веб-сервера не входит в планы PHP 7. Конечно, здорово иметь эту вещь хотя бы на PHP 8.
Когда наступит день выхода PHP 7?
Еще слишком рано делать предположения о фактической дате выпуска PHP 7. Разные люди предполагали, что это будет от 1 до 3 лет. Обоснованное предположение, что следует дождаться финальной версии PHP 7 где-то в 2016 году, хотя возможно увидеть раннюю альфа-версию уже в 2015 году.
Т.е. не раньше, чем через год можно попробовать PHP 7.
Выводы
Недавние разработки в области языка PHP, конечно, были захватывающими.
Откровенно говоря, большая часть этих нововведений стала результатом движения Facebook в сторону HHVM и языка программирования Hack. Я думаю, все мы должны благодарить Facebook за толчок.
Подозреваю, что они сделали это специально, я имею в виду продвинутые HHVM и Hack, чтобы ключевые разработчики PHP проснулись и пошли быстрее. Если так, то это сработало! Однако это принесло пользу всему PHP-сообществу в целом, поэтому не стоит останавливаться на достигнутом.
Источник записи: https://elogic.co