Integrates Edlib Resource Kit with Laravel.
- PHP 8.0, 8.1, or 8.2
- Laravel 8, 9, or 10
- A PSR-18 compatible HTTP client (e.g. Guzzle 7)
- PSR-17 compatible HTTP message factories (included with Guzzle 7)
composer require cerpus/edlib-resource-kit-laravel
If using Guzzle 6, you will also need some adapters:
composer require cerpus/edlib-resource-kit-laravel \
http-interop/http-factory-guzzle \
php-http/guzzle6-adapter
First publish the configuration:
php artisan vendor:publish --provider="Cerpus\EdlibResourceKitProvider\EdlibResourceKitServiceProvider"
For asynchronous publishing, it is required to configure RabbitMQ. Edit
config/edlib-resource-kit.php
, or provide the expected environment variables
to match your infrastructure.
If using cerpus/laravel-rabbitmq-pubsub, you can reuse its configuration:
<?php
return [
'pub-sub' => Cerpus\PubSub\PubSub::class,
];
For synchronous publishing, it is sufficient to provide the following config:
<?php
return [
'synchronous-resource-manager' => true,
];
Given a model that implements EdlibResource
:
use Cerpus\EdlibResourceKit\Contract\EdlibResource;
use Cerpus\EdlibResourceKitProvider\Traits\PublishToEdlib;
use Illuminate\Database\Eloquent\Model;
class Article extends Model implements EdlibResource
{
use PublishToEdlib;
}
Or a model that implements 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(/* ... */);
}
}
With the PublishToEdlib
trait used, Edlib will now be notified upon changes to
the resource.
This package is released under the GNU General Public License 3.0. See the
LICENSE
file for more information.