Релиз Phalcon 4.0
Команда Phalcon рада сообщить о выпуске стабильной четвертой версии быстрого фреймворка Phalcon.
В течение продолжительного времени - больше года, контрибьюторы фреймворка работали над новой версией, предлагая самые смелые реализации, которые должны были стать основой будущих выпусков Phalcon.
Помню ровно год назад была выпущена первая альфа-версия, почти не работоспособная ;), но такая желанная! И с тех пор разработка продолжалась, добавлялись новые функциональные возможности, исправлялись недостатки архитектуры, переписывалась кодовая база, чтобы в полной мере воспользоваться преимуществами повышения скорости PHP 7, а так же более строгих типов для переменных.
Особенности релиза
- Минимальная версия PHP 7.2
- Удален неподдерживаемый код
- Обязательная поддержка PSR
- PSR-7
- PSR-11 (прокси)
- PSR-13
- PSR-16
- PSR-17
- Более строгие интерфейсы
- Фабрики
- Переписана документация
- И многое другое…
Документация Phalcon 4.0
Новая документация уже доступна для ознакомления с новым функционалом фреймворка. Переход с предыдущей 3 версией на новую так же описан достаточно подробно. У меня, например, обновление одного из небольших сайтов никаких больших сложностей не вызвало, но свои тонкости все же есть. Если получится залью на ютуб более подробное видео процесса апргрейда.
Требования
PHP 7.2
Phalcon v4 поддерживает только PHP 7.2 и выше. PHP 7.1 был выпущен 2 года назад, и его активная поддержка прекратилась, поэтому команда решила активно следовать только поддерживаемым версиям PHP.
PSR
Phalcon требует расширение PSR. Расширение можно скачать и скомпилировать из этого репозитория. Инструкция по установке доступна в README репозитория. Как только расширение будет скомпилировано и доступно в вашей системе, вам нужно будет загрузить его в свой php.ini. По приоритету нужно будет добавить:
extension=psr.so
перед
extension=phalcon.so
т.е. сделать, например так, 20-psr.ini и 30-phalcon.ini.
Applications
При создании Phalcon\Mvc\Application, Phalcon\Mvc\Micro или handle в Phalcon\Mvc\Router должны обязательно содержать URI:
$di = new FactoryDefault();
$application = new Application($di);
echo str_replace(["\n","\r","\t"], '',
$application
->handle($_SERVER["REQUEST_URI"])
->getContent()
);
...
Exceptions
Отлов исключений изменен с Exception на Throwable.
Удалены или изменены многие классы в ACL, Assets, Cache, CLI, Db, Filter, Html, Http, Mvc, Session, Validation, Url. С полным списком можно ознакомиться на странице апгрейда.
В целом процесс обновления происходит методом отлова ошибок; сначала обновление фреймворка до 4 версии (обязательно с новой версией PHP и наличием расширения PSR), внедрение дебаггера Phalcon\Debug в код приложения, и далее постепенная отладка и решение возникших проблем. Замена классов и удаление некоторых уже не актуальных участков кода.
Что думаешь?