Symfony/http-Foundation 没有实现 PSR/HTTP-message


symfony/http-foundation doesn't implement psr/http-message

为什么symfony http-foundation没有实现PSR http-message?我想使用php框架互操作性。

在我看来,路由器,调度程序,IOC容器,HTTP消息和...应该有一个PSR接口,所有框架都应该服从这些接口。

所以我想简单地实现我的项目,不使用特定的 php 框架只需使用我需要的PHP包。

我应该自己实现所有这些东西吗?所有框架都应该实现PSR接口不是很明显吗?

毕竟,为什么其他PSR标准(路由器,调度程序,容器)花费太多时间?

HttpFoundation 和 PSR-7

有一个非常非常不同的基础(最大的区别是 PSR-7 对象是不可变的,而 HttpFoundation 的对象是可变的)。这使得Symfony很难(如果不是不可能的话)在不引入完全重写的情况下将HttpFoundation更新到PSR-7接口(因此所有当前的Symfony应用程序都有很多向后兼容性中断)。

为了仍然提供支持 PSR-7 的方法,您可以使用 symfony/psr-http-message-bridge (docs),它提供了将 HttpFoundation RequestResponse转换为 PSR-7 请求和响应消息(反之亦然)的工厂。

当您针对控制器中的 PSR-7 接口而不是 HttpFoundation 请求键入提示时,会自动为您完成此操作。