我正在开发一个客户端库,以便在几个内部项目中使用。
项目A使用Guzzle 5.x项目B使用Guzzle 6.x
两者都相当单一,我将项目A迁移到6.x的可能性非常小。
我正在开发的客户端库使用Guzzle(目前为5.x),该库将包含在Project A&B.然而,Composer对此犹豫不决,因为我不能在我的客户端库中使用Guzzle 5.x,在外部项目(需要库的项目)中使用6.x。
如果有任何方法可以解决这个问题,我将非常感谢您的建议(我想我可以将Guzzle 5.x PHAR文件粘贴在我的客户端库中,但这对我来说很肮脏)。
既然最初的清喉工作已经完成,而且上面的工作给我带来了僵局,除了Guzzle之外,你还会推荐哪个HTTP lib?
-
请求(http://requests.ryanmccue.info/)-我对此的犹豫是,这似乎是对cURL的一次彻底的重新实现,a)似乎没有必要,b)似乎注定要赶上cURL和HTTP2带来的HTTP复杂性等;似乎这将是一个头痛的维护
-
HTTPFul(https://github.com/nategood/httpful)-似乎不再积极开发
-
嗡嗡声(https://github.com/kriswallsmith/Buzz)-似乎不再积极开发
。。。或
- 停止充满******,保持当前库代码正常工作,只包括该死的Guzzle 5.x PHAR
在6旁边运行Guzzle 5
即使使用Phar,我也不认为将Guzzle5.x与Guzzle6一起加载是一种选择。假设您使用的是Composer的自动加载器,您可能会遇到命名空间冲突。
备选HTTP客户端库
我听说过关于请求的好东西,但我自己没有用过。我理解你对重新发明轮子的担忧。
如果您想要一个使用curl的轻量级HTTP客户端,请查看http://unirest.io/php.html.我没有用过,但Mashape是一个众所周知的实体。看起来很活跃。
使用HTTPPlug适配器
这也值得一看:
http://httplug.io/
现在,您的单个项目可以将Guzzle6或Guzzle5连接到此适配器,并且您可以针对单个PSR-7 API对库进行编码。