Будущее развитие фреймворка Phalcon
Последние события круто изменили вектор направления развития фреймворка Phalcon и я сейчас постараюсь описать самые значимые новости по данному вопросу.
Изменения в команде
Последний стрим от команды Phalcon, конечно, взбудоражил все сообщество фреймворка.
Главное изменение в команде - уход Сергея Яковлева в отставку из-за нехватки времени, что повлекло за собой возникновение проблем с поддержкой языка Zephir, который был специально разработан для создания последних версий фреймворка Phalcon, чтобы сообщество могло более активно вносить предложения по функционалу Phalcon, т.к. Зефир по своему синтаксису гораздо более простой язык чем C, и был близок к PHP/JS. К сожалению, язык не стал популярным, и поэтому мало кто хотел вносить свой вклад в развитие языка. Язык стал стагнировать, и его было трудно поддерживать. Было обнаружено множество ошибок, и их было очень трудно исправить, чтобы не перерабатывать весь язык.
После ухода Сергея в команде Phalcon больше нет активных мейнтейнеров, чтобы взять на себя руководство и помогать с разработкой, исправлением ошибок и т.д. Было принято решением приостановить активную разработку Zephir, и в будущем теперь скорее всего, он не будет совместим с PHP 8. Но все же желающие всегда могут помочь с Zephir.
Phalcon
Теперь же, без Zephir, команда не сможет должным образом поддерживать и улучшать фреймворк. Дальнейшие варианты предполагали:
- Либо отказать и прекратить разработку Phalcon
- Решиться на смелый шаг, кардинально поменяв концепцию, и начать писать фреймворк на нативном PHP.
Команда выбрала второй вариант, и писать Phalcon 5 на PHP, при этом постараются максимально поддерживать Phalcon 4 и выпустить следующую версию 4.1. А так же исправлять некоторые критические проблемы Zephir, которые мешают работе текущей версии Phalcon.
Phalcon 5
Конечно немного неожидан такой быстрый переход от Phalcon 4 к Phalcon 5, но текущие событие диктуют свои условия для безболезненного перехода на следующую мажорную версию фреймворка. Что известно на текущий день:
- Будет реализован на чистом PHP
- Установка через composer
- Обратная совместимость, насколько это возможно (это будет зависеть от того, насколько легко получится перевести текущие парсеры C для Volt, PHQL и аннотаций)
- Поддержка PHP 7.4 и будущая PHP 8
- Цели и философия Phalcon остаются неизменными (производительность, низкие накладные расходы, простота использования)
- Cardo (сторонний проект от niden можно использовать как отправную точку)
- Паттерн ADR (Action Domain Responder), как запланировано в версии 4
- Стремление к 100% покрытию кода и тестам
- Возможно асинхронная работа (в будущем)
В ближайшее время запланированы исправление ошибок Phalcon 4, а так же создание требований к дизайну Phalcon 5, презентация, настройка репозитория, тесты производительности и выпуск альфа версии фреймворка.
Возможно это не совсем то, что мы хотели бы видеть, но нужно быть реалистами. Нельзя просто так покинуть сообщество, и действительно, нужно верить, что Phalcon - отличный проект, который приносит пользу сообществу PHP.
Уже точно известно, что мы потеряем часть производительности, к которой мы привыкли при использовании Phalcon, конечно PHP 7 смог достаточно ощутимо преодолеть разрыв в производительности, который мы видели при использовании PHP 5.x и Phalcon. Правда остается надежда, что JIT в PHP 8 сможет минимизировать эту потерю, но, что-то точно можно сказать только после тестов.
Теперь же главной задачей команды Phalcon остается сохранение структуры, а переход на чистый PHP, может быть плюсом к тому, что сообщество теперь может более активно участвовать в проекте, а также помогать с надстройками, инкубатором и многим другим. Что ж, ждем с нетерпением новую версию Phalcon 5.
Что думаешь?