Download the PHP package saltid/lumen-repository without Composer
On this page you can find all versions of the php package saltid/lumen-repository. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package lumen-repository
Installation
System Requirements
| Stack | Version |
|---|---|
PHP |
^8.0 |
laravel/lumen-framework |
^9.0 |
league/fractal |
^0.20.1 |
Composer
This package is available on Packagist and can be installed using Composer:
Interfaces
The SaltId\LumenRepository\Repositories\AbstractRepository implementing below interfaces
- SaltId\LumenRepository\Contracts\RepositoryInterface
- SaltId\LumenRepository\Contracts\RepositoryCriteriaInterface
SaltId\LumenRepository\Criteria\AbstractCriteria is implementing
and SaltId\LumenRepository\Criteria\RequestCriteria is extending SaltId\LumenRepository\Criteria\AbstractCriteria
Criteria is useful for filtering your data, for example the default Criteria is RequestCriteria and has responsibility to handle search, orderBy, sortBy. You can create your own by extending the AbstractCriteria or implementing CriteriaInterface and push it to repository with method pushCriteria(CriteriaInterface $criteria): static;
Usage
Your Model should implements \SaltId\LumenRepository\Contracts\TransformableInterface and implementing
transform(): array method
Create Transformer class and extend it with SaltId\LumenRepository\Transformers\TransformerAbstract and it will look like :
Create Presenter class and extend it with SaltId\LumenRepository\Presenter\FractalPresenter and override the abstact method getTransformer(): ?TransformerAbstract it will look like :
Extend your Repository class with SaltId\LumenRepository\Repositories\AbstractRepository
Now, It's time to use our repository ! But first, this may not a good practice since we use repository directly from controller you can create a service or usecase class and inject the RepositoryInterface.
On your controller
On routes/(web|api).php
The code above, we tell the application when ArticleController is executed and needs RepositoryInterface it will give ArticleRepository with model Article to the controller. Don't forget to register RepositoryServiceProvider in your bootstrap/app.php
That's it ! Now you have a CRUD in defined endpoint atroutes/(web|api).php