Download the PHP package eilander/repository without Composer
On this page you can find all versions of the php package eilander/repository. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download eilander/repository
More information about eilander/repository
Files in eilander/repository
Package repository
Short Description Flexible Laravel 5 repository package.
License MIT
Informations about the package repository
Laravel 5 Repository
An laravel implementation of the Repository Pattern
Further reading: http://ryantablada.com/post/two-design-patterns-that-will-make-your-applications-better
Table of contents
[TOC]
Usage
Step 1: Add the Service Provider
In your config/app.php
add Eilander\Repository\Providers\RepositoryServiceProvider:class
to the end of the providers
array:
Step 2: Add package to composer.json for autoloading
Add the package to the main composer.json
for autoloading and run composer dump-autoload
, like so:
Step 3: Bind interface to implementation in ApiServiceProvider
Elasticsearch
Methods
Search in Elasticsearch Repository
When u make use of the ElasticsearchGateway
filters will be automagically parsed from the url in this format:
betweenDate
BetweenDate is a special function that makes using datehistograms in Elasticseaerch a breeze. It expects a start and end date and parses this to a fully functional datehistogram.
Eloquent
Methods
Find all results in Repository
Find all results in Repository with pagination
Find by result by id
Loading the Model relationships
Find by result by field name
Find by result by multiple fields
Create new entry in Repository
Update entry in Repository
Delete entry in Repository
Using the Filter
The repository code is smart enough to perform filtering and searchin from parameters sent in the request.
You can perform a dynamic search, filter the data and customize the queries.
Enabling in your Repository
You can set the type of condition which will be used to perform the query, the default condition is "="
Examples
Request all data without filter by request
http://stash.directsurvey.nl/api/v1/users
Conducting research in the repository
http://stash.directsurvey.nl/api/v1/users?search=John%20Doe
OR
http://stash.directsurvey.nl/api/v1/users?search=John&searchFields=name:like
OR
http://stash.directsurvey.nl/api/v1/[email protected]&searchFields=email:=
OR
http://stash.directsurvey.nl/api/v1/users?search=name:John Doe;email:[email protected]
OR
http://stash.directsurvey.nl/api/v1/users?search=name:John;email:[email protected]&searchFields=name:like;email:=
Filtering fields
http://stash.directsurvey.nl/api/v1/users?filter=id;name
Sorting the results
http://stash.directsurvey.nl/api/v1/users?filter=id;name&orderBy=id&sortedBy=desc
Relationships
http://stash.directsurvey.nl/api/v1/users?include=groups
Cache
Add a fully automated cache layer to your repository
Cache Usage
Implements the interface CacheableInterface
and use CacheableRepository
Trait.
The repository cache will be cleared whenever an item is created, added or deleted.
Cache Config
You can change cache settings in the config file config/repository.php
or directly on your repository.
config/repository.php
Directly in repository
The cacheable methods are: all, paginate, find, findByField, findWhere. Lifetime can also been set using: minutes, hours, days prior to one of the select methods in the controller.