Flight против Fat-Free
Что такое Fat-Free?
Fat-Free (ласково известный как F3) — это мощный, но простой в использовании PHP-микрофреймворк, предназначенный для быстрого создания динамических и надежных веб-приложений.
Flight во многом сравним с Fat-Free и, вероятно, является самым близким «родственником» по функциональности и простоте. У Fat-Free есть много возможностей, которых нет у Flight, но также есть много возможностей, которые есть и у Flight. Fat-Free начинает показывать свой возраст, и его популярность уже не так высока, как раньше.
Обновления становятся все реже, а сообщество уже не так активно, как прежде. Код достаточно прост, но иногда отсутствие дисциплины в синтаксисе может затруднять чтение и понимание. Он работает с PHP 8.3, но сам код все еще выглядит так, будто он застрял в PHP 5.3.
Преимущества по сравнению с Flight
- У Fat-Free немного больше звезд на GitHub, чем у Flight.
- У Fat-Free есть достойная документация, но в некоторых местах ей не хватает ясности.
- У Fat-Free есть немногочисленные ресурсы, такие как руководства на YouTube и онлайн-статьи, которые можно использовать для изучения фреймворка.
- В Fat-Free встроено несколько полезных плагинов, которые иногда оказываются кстати.
- В Fat-Free есть встроенная ORM под названием Mapper, которую можно использовать для взаимодействия с базой данных. Во Flight есть active-record.
- В Fat-Free встроены сессии, кэширование и локализация. Flight требует использования сторонних библиотек, но это описано в документации.
- У Fat-Free есть небольшая группа созданных сообществом плагинов, которые можно использовать для расширения фреймворка. У Flight некоторые из них описаны на страницах документации и примеров.
- Fat-Free, как и Flight, не имеет зависимостей.
- Fat-Free, как и Flight, ориентирован на предоставление разработчику контроля над своим приложением и простой опыт разработки.
- Fat-Free сохраняет обратную совместимость, как и Flight (частично потому, что обновления выходят все реже).
- Fat-Free, как и Flight, предназначен для разработчиков, которые впервые знакомятся с миром фреймворков.
- В Fat-Free встроен шаблонизатор, который более мощный, чем шаблонизатор Flight. Flight рекомендует Latte для достижения этой цели.
- В Fat-Free есть уникальная команда «маршрут» для CLI, позволяющая создавать CLI-приложения прямо внутри Fat-Free и обрабатывать их подобно
GET-запросу. Flight делает это с помощью runway.
Недостатки по сравнению с Flight
- У Fat-Free есть некоторые тесты реализации и даже собственный очень простой тестовый класс. Однако он не покрыт модульными тестами на 100%, в отличие от Flight.
- Для поиска по документации приходится использовать поисковые системы, такие как Google.
- На сайте документации Flight есть темная тема. (микрофон роняю)
- Некоторые модули Fat-Free, к сожалению, не поддерживаются.
- Во Flight есть SimplePdo для доступа к базе данных, который немного проще, чем встроенный класс
DB\SQLу Fat-Free (и предпочтительнее устаревшего PdoWrapper). - Во Flight есть плагин разрешений, который можно использовать для защиты вашего приложения. В Fat-Free для этого требуется сторонняя библиотека.
- Во Flight есть ORM под названием active-record, которая больше похожа на ORM, чем Mapper у Fat-Free. Дополнительное преимущество
active-recordв том, что вы можете определять связи между записями для автоматических объединений, тогда как Mapper в Fat-Free требует создания SQL-представлений. - Удивительно, но у Fat-Free нет корневого пространства имен. Flight полностью использует пространства имен, чтобы не конфликтовать с вашим кодом. Класс
Cacheздесь самый яркий пример. - В Fat-Free нет промежуточного программного обеспечения (middleware). Вместо этого есть хуки
beforerouteиafterroute, которые можно использовать для фильтрации запросов и ответов в контроллерах. - В Fat-Free нельзя группировать маршруты.
- В Fat-Free есть обработчик контейнера внедрения зависимостей, но документация о том, как его использовать, крайне скудна.
- Отладка может стать немного сложной, поскольку практически все хранится в так называемом
HIVE.