Должен ли я использовать PSR-7 для запросов / ответов Laravel?

Я использовал Slim 3 и, наконец, получил мою голову вокруг PSR-7. Теперь, работая с laravel, я вижу, что из коробки psr-7 не поддерживается.

Теперь... есть ли серьезная причина следовать psr-7 или стилям запросов laravel?

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

Я просто не хочу кодировать целые приложения с помощью классов запросов laravel, то есть Illuminate\Http\Request просто чтобы узнать через год, что я действительно должен был следовать стандарту PSR-7.

1 ответ

Решение

Краткий ответ: нет

Длинный ответ:

Подумайте о назначении PSR (Стандартные рекомендации PHP) и о том, как много значит для вас, что каждый аспект выбранной вами платформы соответствует этим стандартам.

Laravel не поставляется с PSR-7, поддерживаемым из коробки, потому что компонент Symfony, на котором построена его система запросов / ответов, также не совместим с PSR-7. Фактически, этот компонент часто находится в основе МНОГИХ платформ и был написан за время до того, как идея PSR получила распространение.

Чтобы Laravel или любые другие фреймворки, зависящие от этого компонента, стали PSR-7-совместимыми, ему придется изменить свою зависимость от компонента Symfony HTTP Foundation на что-то другое или, возможно, даже свернуть свою собственную реализацию.

Помните, что ВСЕ рекомендации PSR - это просто рекомендации.

Ни один из них не требуется.

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

Нет никаких веских причин для рефакторинга любой кодовой базы или структуры разумной сложности, чтобы быть PSR-совместимым просто ради этого

Как вы сами сказали, личные предпочтения не являются достаточной причиной для пересмотра кодовой базы.

Что касается вашего варианта использования, вам нужно спросить себя, что даст PSR-7-совместимая среда по сравнению с несоответствующей. Проблема не в удобстве сопровождения, так как код, совместимый с PSR, не более и не менее удобен в обслуживании, чем код, несовместимый с ним.

Если вы пишете API, в котором вам понадобится полный контроль над жизненным циклом запросов / ответов, то, возможно, будет лучше использовать среду, совместимую с PSR-7, такую ​​как Slim. Если вы пишете приложение общего назначения, в котором вас интересуют только запросы и ответы, а именно несколько маршрутов AJAX и JSON, то вы, вероятно, в порядке с Laravel или Lumen.

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

Другие вопросы по тегам