Download the PHP package awema-pl/module-repository without Composer
On this page you can find all versions of the php package awema-pl/module-repository. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download awema-pl/module-repository
More information about awema-pl/module-repository
Files in awema-pl/module-repository
Package module-repository
Short Description Implementation of repository pattern for Laravel. The package allows out-of-the-box filtering of data based on parameters in the request, and also allows you to quickly integrate the list filters and custom criteria.
License MIT
Homepage https://github.com/awema-pl/module-repository
Informations about the package module-repository
Repository
Repository Pattern in Laravel. The package allows to filter by request out-of-the-box, as well as to integrate customized criteria and any kind of filters.
Table of Contents
- Installation
- Configuration
- Overview
- Usage
- Create a Model
- Create a Repository
- Use built-in methods
- Create a Criteria
- Scope, Filter, and Order
- Artisan Commands
- Testing
Installation
Via Composer
The package will automatically register itself.
Configuration
First publish config:
Overview
Package allows you to filter data based on incoming request parameters:
It will automatically apply built-in constraints onto the query as well as any custom scopes and criteria you need:
Ordering by any field is available:
Package can also apply any custom criteria:
Usage
Create a Model
Create your model:
Create a Repository
Extend it from AwemaPL\Repository\Eloquent\BaseRepository
and provide entity()
method to return full model class name:
Use built-in methods
Execute the query as a "select" statement or get all results:
Execute the query and get the first result:
Find a model by its primary key:
Add basic where clauses and execute the query:
Paginate the given query:
Paginate the given query into a simple paginator:
Paginate the given query by 'limit' request parameter:
Add an "order by" clause to the query:
Save a new model and return the instance:
Update a record:
Delete a record by id:
Attach models to the parent:
Detach models from the relationship:
Find model or throw an exception if not found:
Execute the query and get the first result or throw an exception:
Create a Criteria
Criteria are a way to build up specific query conditions.
Multiple Criteria can be applied:
Scope, Filter and Order
In your repository define which fields can be used to scope your queries by setting $searchable
property.
Search by searchables:
Also several serchables enabled by default:
Enable ordering for specific fields by adding $orderable
property to your model class:
orderBy=email_desc
will order by email in descending order, orderBy=email
- in ascending
You can also build your own custom scopes. In your repository override scope()
method:
Create your scopes
class and extend ScopesAbstract
Now you can build any scopes you need:
Artisan Commands
Package provides useful artisan command:
It'll generate several classes for :
Main repository:
Main scopes class:
Individual search scope class:
Testing
The coverage of the package is .
You can run the tests with:
Contributing
Please see contributing.md for details and a todolist.
Credits
- Galymzhan Begimov
- All Contributors