PHP的HTTP库(可能不是Guzzle)

时间:2016-06-07 15:51:37

标签: php curl composer-php guzzle

我正在开发一个客户端库,用于几个内部项目。

项目A使用Guzzle 5.x. 项目B使用Guzzle 6.x

两者都是相当单一的,我将Project A迁移到6.x的可能性非常小。

我正在开发的客户端库使用Guzzle(当前为5.x),此库将包含在项目A和A中。 B.然而,Composer因为我不能在我的客户端lib中使用Guzzle 5.x而在外部项目中使用6.x(需要lib的项目)。

如果有任何方法可以解决这个问题,我会非常感谢这些建议(我想我可以将Guzzle 5.x PHAR文件粘贴到我的客户端库中,但这对我来说很脏)。

既然已经完成了最初的清理工作 - 并且考虑到上述情况导致我陷入僵局,除了 Guzzle之外,你会推荐哪个HTTP lib?

  1. 请求http://requests.ryanmccue.info/) - 我对此问题的犹豫是,它似乎是cURL的基础重新实现,a)似乎是不必要的,b)似乎注定要失败使用cURL进行追赶以及使用HTTP2等进行HTTP的复杂性;似乎这将是一个令人头疼的维护

  2. HTTPFul https://github.com/nategood/httpful) - 似乎不再积极开发

  3. Buzz https://github.com/kriswallsmith/Buzz) - 似乎不再积极开发

  4. ......或

    1. 停止充满******,保持当前的库代码正常工作,只包括该死的 Guzzle 5.x PHAR

1 个答案:

答案 0 :(得分:2)

沿着6

运行Guzzle 5

我认为加载Guzzle 5.x和Guzzle 6并不是一个选择,即使使用Phar。假设您正在使用Composer的自动加载器,您可能会遇到名称空间冲突。

替代HTTP客户端库

我听说过有关请求的好消息,但我自己没有使用它。我理解您对重新发明轮子的担忧。

如果您想要使用curl的轻量级HTTP客户端,请查看http://unirest.io/php.html。我没有使用它,但Mashape是一个众所周知的实体。似乎很活跃。

使用HTTPPlug适配器

这也值得一看:

http://httplug.io/

现在您的个别项目可以将Guzzle 6或Guzzle 5连接到此适配器,您可以针对单个PSR-7 API对库进行编码。