astrotomic/laravel-guzzle

此包已被弃用且不再维护。作者建议使用 illuminate/http 包。

Laravel 对 guzzlehttp/guzzle 的封装

2.4.0 2022-10-07 10:29 UTC

This package is auto-updated.

Last update: 2024-02-07 16:45:09 UTC


README

Latest Version MIT License Offset Earth Larabelles

GitHub Workflow Status StyleCI Total Downloads

这是一个简单的 Laravel 对 guzzlehttp/guzzle 的封装。它提供容器绑定和少量辅助函数。这个想法是在阅读 在队列任务中始终为 Guzzle 请求设置超时 时产生的,作者是 @themsaid。为什么限制在队列中?最终,这个问题适用于 所有 的 curl 请求。这就是为什么这个包附带了一个默认配置,该配置应用于通过此包构建的每个 Guzzle 实例。

安装

您可以通过 composer 安装此包

composer require astrotomic/laravel-guzzle

安装完成后,您应该发布包配置并根据您的需要进行调整。

php artisan vendor:publish --provider="Astrotomic\LaravelGuzzle\LaravelGuzzleServiceProvider" --tag=config

用法

此包的核心是 \Astrotomic\LaravelGuzzle\Factory,它可以处理多个 Guzzle 客户端。还有一个外观,它将调用转发到工厂。

use Astrotomic\LaravelGuzzle\Facades\Guzzle;
use Psr\Http\Message\ResponseInterface;

/** @var ResponseInterface $response */
$response = Guzzle::client('jsonplaceholder')->get('posts/1');
$response->getStatusCode(); // 200

默认客户端

默认情况下,default_client 配置引用一个 default 客户端。clients 配置键包含所有客户端特定配置。有关所有可能的请求选项,请参阅 官方 Guzzle 文档

新客户端

有多种方式可以注册一个新客户端 - 最简单的方法是向 clients 配置键中添加一个新配置。对于在 Laravel 应用中使用此包的用户来说,这将是最常见的。

注册配置

如果您想从服务提供者内部配置客户端,可以使用 \Astrotomic\LaravelGuzzle\Factory::register() 方法。注册的配置将与可选的应用程序配置合并。这对于希望允许最终用户自定义 Guzzle 配置的包开发者来说也非常有用。

use Astrotomic\LaravelGuzzle\Facades\Guzzle;
use Illuminate\Support\ServiceProvider;
use GuzzleHttp\RequestOptions;

class HttpServiceProvider extends ServiceProvider
{
    public function boot(): void
    {
        Guzzle::register('jsonplaceholder', [
            'base_uri' => 'https://jsonplaceholder.typicode.com',
            RequestOptions::TIMEOUT => 3,
        ]);
    }
}

注册创建者

如果您需要自己创建一个真实的 GuzzleHttp\Client 实例,您可以这样做,并将其分配给一个标识符。这样,您还可以使用自定义客户端类 - 唯一的要求是它扩展了基本的 GuzzleHttp\Client 类。

use Astrotomic\LaravelGuzzle\Facades\Guzzle;
use GuzzleHttp\Client;
use Illuminate\Contracts\Container\Container;

Guzzle::extend('astrotomic', static function (Container $app, ?array $config): Client {
    return new Client(array_merge([
        'base_uri' => 'https://astrotomic.info',
    ], $config));
});

测试

composer test

变更日志

请参阅 CHANGELOG 了解最近的变化。

贡献

请参阅CONTRIBUTING以获取详细信息。您可能还对行为准则感兴趣。

安全

如果您发现任何与安全相关的问题,请查看SECURITY了解报告步骤。

鸣谢

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。

TreeWare

您可以自由使用此软件包,但如果它进入您的生产环境,我将非常感激您为世界买一棵树。

现在众所周知,解决气候危机并防止气温上升超过1.5C的最佳工具之一是种树。如果您为我的森林做出贡献,您将为当地家庭创造就业机会并恢复野生动物栖息地。

您可以在offset.earth/treeware购买树木。

treeware.earth上了解更多关于TreeWare的信息。