prestashop/module-lib-guzzle-adapter 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

prestashop/module-lib-guzzle-adapter

最新稳定版本:v1.0

Composer 安装命令:

composer require prestashop/module-lib-guzzle-adapter

包简介

Plug modules to the Guzzle client available on a running shop

README 文档

README

Plug modules to the Guzzle client available on a running shop. This library is compatible with PHP 7.2.5 and above.

Latest Stable Version Minimum PHP Version Quality Control Status

Installation

composer require prestashop/module-lib-guzzle-adapter

Version Guidance

Version Status Packagist - Namespace Repo Docs PHP Version
<=0.5 Stable prestashop/module-lib-guzzle-adapter Prestashop\ModuleLibGuzzleAdapter v0.x N/A >=7.2.5
>=0.6 Latest prestashop/module-lib-guzzle-adapter Prestashop\ModuleLibGuzzleAdapter v0.x N/A >=5.6.0
1.x Latest prestashop/module-lib-guzzle-adapter Prestashop\ModuleLibGuzzleAdapter v1.x N/A >=7.2.5

Usage

# 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')
);

In this example, base_url is known to be a option for Guzzle 5 that has been replaced for base_uri on Guzzle 6+. Any of this two keys can be set, as it will be automatically modified for the other client if needed.

The automatically changed properties are:

Guzzle 5 property Guzzle 7 property
base_url <=> base_url
defaults.authorization <=> authorization
defaults.exceptions <=> http_errors
defaults.timeout <=> timeout

Why this library?

Making HTTP requests in a PrestaShop module can be done in several ways. With file_get_contents(), cURL or Guzzle when provided by the core.

Depending on the running version of PrestaShop, the bundled version of Guzzle can be different:

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

Having a module compatible for these two major PrestaShop versions can be tricky. The classes provided by the two Guzzle version are named the same, but their methods are different.

It is not possible for a module contributor to require its own Guzzle dependency either, because PHP cannot load different versions of a same class and he would never know which one would be loaded first.

Implementation notes

This library reuses the idea behind PHP-HTTP, where the implementation of HTTP requests should be the same (PSR) whatever the client chosen.

The client files from php-http/guzzle5-adapter and php-http/guzzle7-adapter have been copied in this repository because these libraries both require a different version Guzzle in their dependencies to work. Requiring them together would conflict, so we duplicated the client adapters to be safe.

统计信息

  • 总下载量: 67.5k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 1
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 3
  • Forks: 5
  • 开发语言: PHP

其他信息

  • 授权协议: AFL-3.0
  • 更新时间: 2022-06-10