PHP 的 HTTP 库(可能不是 Guzzle)
HTTP library for PHP (probably not Guzzle)
我正在开发要在多个内部项目中使用的客户端库。
项目 A 使用 Guzzle 5.x
项目 B 使用 Guzzle 6.x
两者都相当单一,我将项目 A 迁移到 6.x 的可能性很小。
我正在开发的客户端库使用 Guzzle(5.x 目前),这个库将包含在项目 A 和 B 中。但是,Composer 对此犹豫不决,因为我不能使用 Guzzle 5.x 在我的客户端库中,在外部项目(需要该库的项目)中 6.x。
如果有任何方法可以解决此问题,我将不胜感激(我想我可以将 Guzzle 5.x PHAR 文件粘贴到我的客户端库中,但我觉得这很脏)。
既然已经完成了初步的清理工作 - 考虑到上述情况导致我陷入僵局,除了 Guzzle,你会推荐哪个 HTTP 库?
Requests (http://requests.ryanmccue.info/) - 我对此犹豫不决,因为它似乎是 cURL 的彻底重新实现,a)似乎没有必要,并且 b) 似乎注定要赶上 cURL 和 HTTP2 等带来的 HTTP 的复杂性;看起来维护起来会很头疼
HTTPFul (https://github.com/nategood/httpful) - 似乎不再积极开发
Buzz (https://github.com/kriswallsmith/Buzz) - 似乎不再积极开发
... 或
- 不要满脑子都是******,让你当前的库代码继续工作,只包括该死的 Guzzle 5.x PHAR.
运行 Guzzle 5 和 6
我不认为加载 Guzzle 5.x 和 Guzzle 6 是一个选项,即使使用 Phar。假设您使用的是 Composer 的自动加载器,您可能会遇到名称空间冲突。
替代 HTTP 客户端库
我听说过有关 Requests 的好消息,但我自己还没有使用过它。我理解您对重新发明轮子的担忧。
如果您想要使用 curl 的轻量级 HTTP 客户端,请查看 http://unirest.io/php.html。我没用过它,但 Mashape 是一个众所周知的实体。似乎很活跃。
使用 HTTPPlug 适配器
这个也值得一看:
现在您的个人项目可以将 Guzzle 6 或 Guzzle 5 连接到此适配器,并且您可以针对单个 PSR-7 API 编写您的库。
我正在开发要在多个内部项目中使用的客户端库。
项目 A 使用 Guzzle 5.x 项目 B 使用 Guzzle 6.x
两者都相当单一,我将项目 A 迁移到 6.x 的可能性很小。
我正在开发的客户端库使用 Guzzle(5.x 目前),这个库将包含在项目 A 和 B 中。但是,Composer 对此犹豫不决,因为我不能使用 Guzzle 5.x 在我的客户端库中,在外部项目(需要该库的项目)中 6.x。
如果有任何方法可以解决此问题,我将不胜感激(我想我可以将 Guzzle 5.x PHAR 文件粘贴到我的客户端库中,但我觉得这很脏)。
既然已经完成了初步的清理工作 - 考虑到上述情况导致我陷入僵局,除了 Guzzle,你会推荐哪个 HTTP 库?
Requests (http://requests.ryanmccue.info/) - 我对此犹豫不决,因为它似乎是 cURL 的彻底重新实现,a)似乎没有必要,并且 b) 似乎注定要赶上 cURL 和 HTTP2 等带来的 HTTP 的复杂性;看起来维护起来会很头疼
HTTPFul (https://github.com/nategood/httpful) - 似乎不再积极开发
Buzz (https://github.com/kriswallsmith/Buzz) - 似乎不再积极开发
... 或
- 不要满脑子都是******,让你当前的库代码继续工作,只包括该死的 Guzzle 5.x PHAR.
运行 Guzzle 5 和 6
我不认为加载 Guzzle 5.x 和 Guzzle 6 是一个选项,即使使用 Phar。假设您使用的是 Composer 的自动加载器,您可能会遇到名称空间冲突。
替代 HTTP 客户端库
我听说过有关 Requests 的好消息,但我自己还没有使用过它。我理解您对重新发明轮子的担忧。
如果您想要使用 curl 的轻量级 HTTP 客户端,请查看 http://unirest.io/php.html。我没用过它,但 Mashape 是一个众所周知的实体。似乎很活跃。
使用 HTTPPlug 适配器
这个也值得一看:
现在您的个人项目可以将 Guzzle 6 或 Guzzle 5 连接到此适配器,并且您可以针对单个 PSR-7 API 编写您的库。