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