【问题标题】:symfony/http-foundation doesn't implement psr/http-messagesymfony/http-foundation 没有实现 psr/http-message
【发布时间】:2016-03-12 06:24:02
【问题描述】:

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

在我看来路由器、调度程序、ioc 容器、http 消息和... 应该有一个 psr 接口,并且所有框架都应该遵循这些接口。

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

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

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

【问题讨论】:

  • PSR 接口相对较新,Symfony 不能破坏所有现有的应用程序。通过网桥支持 Http 消息 symfony.com/blog/psr-7-support-in-symfony-is-here (symfony.com/doc/current/cookbook/psr7.html)
  • 我已经看过那个包,我认为只为 http 消息获取多个包不是标准的。我记得 psr 包已经准备好工作了,已经超过 3 个月了。如果所有框架和包都遵循 psr 接口,那么 php 至少会强 5 倍。 symfony 只是一个框架而已。我认为symfony框架妄想成为php社区第一。
  • @mhndev 3 个月对于一个大型框架重写其中一个主要组件并让社区实施它来说并不是很长的时间。 (尤其是第二件事需要更多的时间)。顺便说一句,我不认为 Symfony 有成为第一的错觉,还没有流行的框架实现 PSR-7...

标签: php symfony php-psr


【解决方案1】:

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 请求键入提示时,这会自动为您完成。

【讨论】:

  • 我希望我能尽快看到 httpfoundation 实现 psr 消息。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多