desmart / adr
ADR pattern implementation for Laravel. Designed for https://github.com/DeSmart/laravel-vanilla.
Installs: 2 198
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 6
Forks: 0
Open Issues: 1
Requires
- php: >=7.0.0
- desmart/laravel-commandbus: dev-master
- laravel/framework: 5.4.*
- league/fractal: 0.14.*
Requires (Dev)
- phpunit/phpunit: ~5.0
This package is not auto-updated.
Last update: 2024-11-09 20:39:36 UTC
README
ADR pattern implementation for Laravel. The package provides a set of tools making it easier to implement the Action-Domain-Responder pattern.
Installation
Install package using Composer:
composer require desmart/adr
Register the package's service provider in config/app.php
:
'providers' => [
(...)
DeSmart\ADR\ServiceProvider::class,
],
Usage
The main goal of this package is to make it easier to implement the ADR pattern. This means that you should be able to
create Actions (Controllers with a single callable method, e.g. execute()
) that return a Responder.
The Responder can digest a single Entity or a Collection of Entities and transform them into a JSON API response.
Example
class ADRAction extends \DeSmart\ADR\Actions\BaseAction
{
public function execute()
{
$user = new User('John', 'john@desmart.com');
return $this->respondWith($user);
}
}
Model to Entity hydration
In order to hydrate an entity from a model (and vice versa) the package comes with a helper - HydratesEntityTrait
.
Each Model class that uses this trait will be granted the toEntity()
method which converts the Model to an Entity.