astrotomic / laravel-guzzle
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.0
- illuminate/support: ^8.0 || ^9.0
Requires (Dev)
- orchestra/testbench: ^6.0 || ^7.0
- phpunit/phpunit: ^9.5
README
这是一个简单的 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的信息。