«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Сравнение Slim и Flight PHP Framework

Сравнение Slim и Flight PHP Framework

Опубликовано 7 ноября 2024 г.
Просматривать:870

Зачем использовать микрофреймворк?

В социальных сетях новые PHP-разработчики часто спрашивают: «Какой фреймворк мне следует использовать для своего проекта», и обычно они отвечают: «Laravel» или «Symfony».

Хотя оба варианта хороши, правильный ответ на этот вопрос должен быть таким: «Для чего вам нужна платформа?»

Правильный фреймворк должен делать то, что вам нужно, без множества функций, которые вы никогда не будете использовать.

Если вы создаете веб-сайт с одним маршрутом, использование Laravel или Symfony потребует дополнительной разработки сайта, а для сложного сайта правильным выбором может быть Laravel или Symfony.

Микрофреймворки отлично подходят для создания сайтов малого и среднего размера, которым не нужны все функции, предоставляемые полнофункциональным фреймворком.

Хотя их много, Slim и Flight PHP являются отличными примерами микрофреймворков.


Недавно я создал небольшой веб-сайт, на котором пользователю предлагается ответить на 10 вопросов, связанных с базой данных. У него было три маршрута и несколько основных запросов для получения вопросов и сравнения ответов.

Для такого небольшого проекта микрофреймворк — отличный выбор. Я создал сайт на Slim и Flight PHP, чтобы сравнить их.

Скелеты

Если вы раньше не использовали конкретный фреймворк, обычно лучше начать с использования предоставленного скелетного проекта.

Скелетный проект Flight PHP во многом соответствует моим ожиданиям: легкий вес, простая настройка MVC, легко понять структуру папок и знать, где все должно находиться в проекте.

Для новичков в этой платформе кривая обучения, необходимая для начала работы, минимальна.

Освещение библиотек композиторов, всего 5 (включая основную библиотеку), 4 используются в производстве.

Производственный размер Скелета составил 1,6 МБ.

Проект скелета Slims меня удивил. Структура каталогов оказалась более сложной, чем я ожидал. Больше ориентирован на структуру, которую можно использовать в более крупном проекте, чем в небольшом проекте. Для микрофреймворка этого не ожидалось.

Скелет Slim был немного тяжелее, чем Flight PHP. 21 композиторская библиотека, 9 из которых используются в производстве. Размер проекта составил 3,3 Мб.

Оба работали «из коробки» с минимальной дополнительной настройкой.

Создание с нуля

Вместо того, чтобы использовать скелеты, я решил создавать сайты, создавая свои собственные настройки. Преимущество этого в том, что я смог адаптировать фреймворки в соответствии со своими потребностями и увидеть, насколько они гибки для различных структур.

Одним из больших преимуществ использования микрофреймворков является возможность создавать их так, чтобы они делали именно то, что вам нужно, без ненужных затрат, добавляя функции и библиотеки по мере необходимости.

Моя установка с Flight PHP существенно не отличалась от скелета. Хотя в итоге у меня получилось меньше каталогов и разных библиотек композиторов, структурно все было похоже.

В случае со Слимом структура проекта существенно отличалась от скелета.

Было приятно, что Слим был гибким, не делал предположений о структуре и прекрасно работал с совершенно другой структурой, чем скелет.

Flight PHP также является гибким в этом отношении, позволяя при необходимости создавать более сложные структуры, а добавление новых библиотек в структуру было простым.

Кодекс

Маршрутизация

С точки зрения маршрутизации, с обоими было приятно работать. Их обоих было легко настроить, не требуя особого чтения документации.

Маршруты в Flight PHP было немного проще настроить, чем в Slim, и для этого требовалось меньше кода, но ни один из них не был сложным в настройке.

Группы маршрутизации, возможности регулярных выражений и опции промежуточного программного обеспечения сделали маршруты гибкими, но при этом с ними было легко работать.

Подключения к базе данных

При использовании Slim ожидается, что вы должны использовать ORM, например Eloquent или Doctrine для запросов к базе данных, тогда как Flight PHP предоставляет простую оболочку для PDO, которую можно использовать, если вам необходимо, и при необходимости в проект можно добавить Активную запись для построения запросов.

Для небольшого проекта, подобного тому, над которым я работал, использование ORM казалось более чем необходимым, поэтому я создал небольшой класс-оболочку PDO для Slim, похожий на тот, который встроен в Flight PHP. .

ORM — это здорово, но наличие встроенной гибкости, позволяющей выбирать способ кодирования запросов к базе данных, — это хорошая функция.

Общее кодирование

Как Slim, так и Flight PHP Framework позволяют вам писать код по-своему.

Некоторые фреймворки склонны заставлять вас писать код определенным образом, и иногда может показаться, что вы боретесь с фреймворком.

Фреймворки должны работать на вас, а не против вас, и оба они чувствовали, что работают на меня.

Slim также предоставляет ряд удобных дополнений, включая интеграцию CSRF и HTTP-кэширование.

Flight PHP предоставляет дополнительные дополнения, включая разрешения и активную запись.

Все эти дополнения являются полезными и не требуют использования сторонних решений или создания собственных.

Возврат JSON в качестве ответа в Flight PHP проще, чем в Slim, Slim 3 имел удобный ответ withJson. Хотя Slim 4 больше соответствует PSR-7, это означает, что для построения ответа JSON требуется больше кода.

Если бы я собирался часто использовать ответы JSON, я бы, скорее всего, создал оболочку, чтобы сделать его более удобным, сохраняя при этом соответствие стандарту PSR-7.

Это существенная разница между двумя платформами. Слим считает, что ее нужно больше адаптировать, создавая классы для очистки и упрощения кодовой базы, в то время как Flight PHP уже сделал это за вас.

Slim предоставляет ряд вспомогательных промежуточных программ. Промежуточное программное обеспечение необходимо для работы некоторых функций.

Примером этого является получение данных из Javascript с помощью FETCH. У Slim есть метод getParsedBody для создания массива данных из запроса POST.

Однако для его использования в контейнер необходимо добавить addBodyParsingMiddleware.

Это своего рода ловушка для новых разработчиков, но он также предоставляет доступ к дополнительным функциям, которые могут снизить общую нагрузку на фреймворк, включив только те функции, которые вам нужны.

Flight PHP достигает этого с помощью файла конфигурации, некоторые функции можно включать и выключать с помощью конфигурации, а не с помощью включения промежуточного программного обеспечения.

Тесты скорости

Согласно тестам, сравнение этих двух показателей дает интересные результаты: Slim превосходит Flight PHP в некоторых областях, а Flight PHP превосходит Slim в других областях.

Протестирование двух фреймворков на моем собственном коде показало, что Flight PHP имеет более быстрое и стабильное время отклика, чем Slim.

Внешний интерфейс

Slim and Flight PHP Framework Comparison

Запрос GET, возвращающий JSON

Slim and Flight PHP Framework Comparison

POST-запрос, возвращающий JSON

Slim and Flight PHP Framework Comparison

Что мне показалось примечательным, так это резкие скачки при использовании Slim.

Выполнение этих тестов несколько раз каждый раз давало результаты, аналогичные тем, которые я показал выше, с в целом хорошим временем отклика для обоих, но с выбросами в Slim, которых не было при тестировании Flight PHP, а Flight PHP, как правило, имел лучшее время время ответа.

Заключительные мысли

Если вы еще не пробовали микрофреймворки, попробуйте их, их несколько, и это может быть отличным опытом, чтобы опробовать их и посмотреть, что вам нравится, а что не нравится в каждом из них. один.

И Slim, и Flight PHP — отличные микрофреймворки.

Slim — это надежная платформа с некоторыми приятными функциями, которые будут работать без проблем.

Flight PHP легче, а его простота облегчает изучение фреймворка.

Хорошее время отклика и более упрощенный код для достижения той же цели делают его действительно хорошим выбором для использования в качестве микрофреймворка.

После того, как я поставил эти два рядом друг с другом, я предпочитаю Flight PHP Slim, но, как и в случае с любым другим фреймворком, попробуйте и посмотрите, подойдет ли он вам.

В конце концов, правильный фреймворк — это фреймворк, который делает то, что вам нужно.

Полет PHP
Тонкий каркас

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/mrpercival/slim-and-flight-php-framework-comparison-17am?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3