prestashop/module-lib-guzzle-adapter

将插件模块连接到正在运行的商店上的Guzzle客户端

v1.0 2022-09-30 10:25 UTC

This package is auto-updated.

Last update: 2024-08-29 19:36:42 UTC


README

将插件模块连接到正在运行的商店上的Guzzle客户端。此库与PHP 7.2.5及以上版本兼容。

Latest Stable Version Minimum PHP Version Quality Control Status

安装

composer require prestashop/module-lib-guzzle-adapter

版本指南

使用方法

# Getting a client (Psr\Http\Client\ClientInterface)
$options = ['base_url' => 'http://some-url/'];
$client = (new Prestashop\ModuleLibGuzzleAdapter\ClientFactory())->getClient($options);

# Sending requests and receive response (Psr\Http\Message\ResponseInterface)
$response = $this->client->sendRequest(
    new GuzzleHttp\Psr7\Request('POST', 'some-uri')
);

在这个例子中,base_url 是Guzzle 5的一个选项,在Guzzle 6+中被base_uri 替换。这两个键中的任何一个都可以设置,因为如果需要,它会自动为另一个客户端修改。

自动更改的属性包括

为什么需要这个库?

在PrestaShop模块中执行HTTP请求可以通过多种方式完成。使用核心提供的 file_get_contents(),cURL 或 Guzzle。

根据PrestaShop的运行版本,捆绑的Guzzle版本可能不同

  • PrestaShop 1.7: Guzzle 5
  • PrestaShop 8: Guzzle 7

让模块同时兼容这两个主要的PrestaShop版本可能会很复杂。两个Guzzle版本提供的类名称相同,但它们的方法不同。

模块贡献者也无法要求其自己的Guzzle依赖项,因为PHP无法加载相同类的不同版本,并且他永远不会知道哪个会首先加载。

实现说明

此库重用了PHP-HTTP背后的想法,即HTTP请求的实现应该相同(PSR),无论选择的客户端。

由于这些库在依赖中需要不同版本的Guzzle才能工作,因此从php-http/guzzle5-adapterphp-http/guzzle7-adapter复制的客户端文件已包含在此存储库中。要求它们一起使用将发生冲突,因此我们复制了客户端适配器以确保安全。