cerpus / edlib-resource-kit-laravel
将 Edlib 资源套件与 Laravel 集成
v0.6.0
2022-12-08 14:18 UTC
Requires
- php: 8.0.*|8.1.*|8.2.*
- cerpus/edlib-resource-kit: ^0.3|^0.4|^0.5
- cerpus/pubsub: ^1.0
- illuminate/support: ^8.0|^9.0
- php-http/discovery: ^1.14
- psr/http-client-implementation: ^1.0
- psr/http-factory-implementation: ^1.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.0
- orchestra/testbench: ^6.0|^7.0
This package is auto-updated.
Last update: 2024-09-21 14:54:52 UTC
README
将 Edlib 资源套件 与 Laravel 集成。
要求
- PHP 8.0, 8.1 或 8.2
- Laravel 8, 9 或 10
- PSR-18 兼容的 HTTP 客户端(例如 Guzzle 7)
- PSR-17 兼容的 HTTP 消息工厂(包含在 Guzzle 7 中)
安装
composer require cerpus/edlib-resource-kit-laravel
如果使用 Guzzle 6,您还需要一些适配器
composer require cerpus/edlib-resource-kit-laravel \ http-interop/http-factory-guzzle \ php-http/guzzle6-adapter
配置
首先发布配置
php artisan vendor:publish --provider="Cerpus\EdlibResourceKitProvider\EdlibResourceKitServiceProvider"
对于异步发布,需要配置 RabbitMQ。编辑 config/edlib-resource-kit.php
,或提供匹配您基础设施的预期环境变量。
如果使用 cerpus/laravel-rabbitmq-pubsub,您可以重用其配置
<?php return [ 'pub-sub' => Cerpus\PubSub\PubSub::class, ];
对于同步发布,只需提供以下配置
<?php return [ 'synchronous-resource-manager' => true, ];
用法
自动发布资源
给定一个实现了 EdlibResource
的模型
use Cerpus\EdlibResourceKit\Contract\EdlibResource; use Cerpus\EdlibResourceKitProvider\Traits\PublishToEdlib; use Illuminate\Database\Eloquent\Model; class Article extends Model implements EdlibResource { use PublishToEdlib; }
或一个实现了 ConvertableToEdlibResource
的模型
use Cerpus\EdlibResourceKit\Contract\EdlibResource; use Cerpus\EdlibResourceKitProvider\Contract\ConvertableToEdlibResource; use Cerpus\EdlibResourceKitProvider\Traits\PublishToEdlib; use Illuminate\Database\Eloquent\Model; class Article extends Model implements EdlibResource { use PublishToEdlib; public function toEdlibResource(): EdlibResource { // Return your own data object return new ArticleEdlibResource(/* ... */); } }
使用 PublishToEdlib
特性,Edlib 将在资源更改时被通知。
许可
此包根据 GNU 通用公共许可证 3.0 发布。有关更多信息,请参阅 LICENSE
文件。