jcsilkey/laravel-guzzle

Laravel 的 Guzzle 服务提供者

0.2.2 2018-06-04 00:29 UTC

This package is auto-updated.

Last update: 2024-09-17 12:52:39 UTC


README

此软件包提供了一种机制来配置一个或多个 Guzzle 客户端以供应用程序使用。

安装

使用以下方式安装

composer require jcsilkey/laravel-guzzle

使用自动包发现,服务提供者将被自动注册。不会提供门面,因为门面很邪恶。

发布配置

php artisan vendor:publish --tag="config"

使用方法

此软件包注册了2个服务

GuzzleHttp\ClientInterface

解析为包配置中定义的默认客户端。

JCS\LaravelGuzzle\GuzzleClientRegistry

解析为客户端注册表,其中包含所有客户端。 GuzzleClientRegistry@getClient() 将返回默认客户端。传递客户端名称以获取特定客户端,GuzzleClientRegistry@getClient($clientName)

配置

默认配置是最小的

return [
    'default' => env('GUZZLE_DEFAULT_CLIENT', null),
    'global' => [],
    'clients' => []
    ]
];

default

默认客户端的名称。如果此值为 null,则将创建一个名为 'default' 的客户端,并使用在 global 中定义的设置。如果提供了名称,则它必须是 clients 中定义的有效客户端。

global

用于所有客户端的默认配置选项。可以使用任何有效的 Guzzle 配置选项。

clients

一个命名客户端数组,以及每个客户端的配置选项。例如

    'clients' => [
        'example_api' => [
            'base_uri' => 'https://api.example.com'
        ],
        'example_api2' => [
            'base_uri' => 'https://api2.example.com'
        ],
    ]

客户端选项与上面定义的全球选项合并(浅合并,只包括顶级键)。

配置处理器和中间件

要定义自定义处理器和 Guzzle 中间件堆栈,请使用正常的 guzzle handler 选项指定处理器类和一个特殊的 middleware 选项,该选项是一个要添加到客户端的中间件数组。每个中间件定义本身是一个数组,由一个 callable 和用于注册中间件的 name 组成。例如

    `handler` => 'GuzzleHttp\Handler\CurlHandler',
    'middleware' => [
        [
            'callable' => 'GuzzleHttp\Middleware::httpErrors',
            'name' => 'http_errors'
        ],
    ]

如果没有指定 handler,则会根据您的 PHP 配置自动为您选择一个。

如果没有定义 middleware,则您的 Guzzle 客户端将使用默认设置创建