我应该将 psr-7 用于 laravel 请求/响应吗?

Should I use psr-7 for laravel requests / responses?

我一直在使用 slim 3,终于了解了 psr-7。现在与 laravel i see that out of the box, psr-7 is not supported.

合作

现在...是否有充分的理由遵循 psr-7 或 laravel 请求样式?

例如个人喜好,不是一个强有力的理由。

我只是不想用 laravel 请求 类 编写整个应用程序的代码,也就是说 Illuminate\Http\Request 只是为了在一年后发现我真的应该遵循 psr -7 标准。

简答:

长答案:

考虑 PSR 的目的(PHP 标准建议)以及您选择的框架的每个方面都遵循这些标准对您意味着什么。

Laravel 不支持开箱即用的 PSR-7,因为构建其 Request/Response 系统的 Symfony Component 也不符合 PSR-7。事实上,这个组件经常出现在许多框架的核心,并且是在 PSR 的想法流行之前编写的。

为了 Laravel - 或依赖此组件的任何其他框架 - 成为 PSR-7 兼容,它必须将其对 Symfony HTTP Foundation 组件的依赖更改为其他内容,或者也许甚至推出自己的实现。

请记住,所有 PSR 建议都只是:建议。

None 是必需的。

他们的唯一目的是帮助将 PHP 的写作统一为更可预测的格式,以便所有至少熟悉这些标准的 PHP 开发人员随后能够更轻松地遵循了解每个符合要求的代码库。

没有令人信服的理由重构任何代码库或合理复杂的框架以使其符合 PSR

正如您自己所说,个人偏好不足以作为彻底修改代码库的理由。

至于您的用例,您需要问问自己,与不兼容的框架相比,符合 PSR-7 的框架将为您实现什么。问题不在于可维护性,因为符合 PSR 的代码不会比不兼容的代码更容易维护。

如果您正在编写一个 API,您需要在其中完全控制 Request/Response 生命周期,那么最好使用像 Slim 这样的 PSR-7 兼容框架。如果您正在编写一个通用应用程序,其中您唯一关心的请求和响应是少数 AJAX 和 JSON 路由,那么您可能对 Laravel 或流明。

不要太在意给定的框架是否符合 FIG。只需做您的研究,并确保您选择的工具集最适合您的需求。