Должен ли я использовать 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.
Не стоит слишком увлекаться тем, соответствует ли данная структура требованиям фиг. Просто сделайте свое исследование и убедитесь, что набор инструментов, который вы выбираете, лучше всего соответствует вашим потребностям.