我正在开发一个客户端库,用于几个内部项目。
项目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?
请求(http://requests.ryanmccue.info/) - 我对此问题的犹豫是,它似乎是cURL的基础重新实现,a)似乎是不必要的,b)似乎注定要失败使用cURL进行追赶以及使用HTTP2等进行HTTP的复杂性;似乎这将是一个令人头疼的维护
HTTPFul (https://github.com/nategood/httpful) - 似乎不再积极开发
Buzz (https://github.com/kriswallsmith/Buzz) - 似乎不再积极开发
......或
答案 0 :(得分:2)
我认为加载Guzzle 5.x和Guzzle 6并不是一个选择,即使使用Phar。假设您正在使用Composer的自动加载器,您可能会遇到名称空间冲突。
我听说过有关请求的好消息,但我自己没有使用它。我理解您对重新发明轮子的担忧。
如果您想要使用curl的轻量级HTTP客户端,请查看http://unirest.io/php.html。我没有使用它,但Mashape是一个众所周知的实体。似乎很活跃。
这也值得一看:
现在您的个别项目可以将Guzzle 6或Guzzle 5连接到此适配器,您可以针对单个PSR-7 API对库进行编码。