В социальных сетях новые 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.
Внешний интерфейс
Запрос GET, возвращающий JSON
POST-запрос, возвращающий JSON
Что мне показалось примечательным, так это резкие скачки при использовании Slim.
Выполнение этих тестов несколько раз каждый раз давало результаты, аналогичные тем, которые я показал выше, с в целом хорошим временем отклика для обоих, но с выбросами в Slim, которых не было при тестировании Flight PHP, а Flight PHP, как правило, имел лучшее время время ответа.
Если вы еще не пробовали микрофреймворки, попробуйте их, их несколько, и это может быть отличным опытом, чтобы опробовать их и посмотреть, что вам нравится, а что не нравится в каждом из них. один.
И Slim, и Flight PHP — отличные микрофреймворки.
Slim — это надежная платформа с некоторыми приятными функциями, которые будут работать без проблем.
Flight PHP легче, а его простота облегчает изучение фреймворка.
Хорошее время отклика и более упрощенный код для достижения той же цели делают его действительно хорошим выбором для использования в качестве микрофреймворка.
После того, как я поставил эти два рядом друг с другом, я предпочитаю Flight PHP Slim, но, как и в случае с любым другим фреймворком, попробуйте и посмотрите, подойдет ли он вам.
В конце концов, правильный фреймворк — это фреймворк, который делает то, что вам нужно.
Полет PHP
Тонкий каркас
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3