Genie
, (*1)
Introduction
A base repository class for Eloquent with convenience methods that cover most queries. Useful to abstract away
your persistence layer from your business code., (*2)
Dedicated to Genie, (*3)
Dedicated to the World's best (and only) Genie in a bottle. Congrats on the freedom my man., (*4)
Installation
For Laravel 5.4 and above, (*5)
composer require optimus/genie ~2.0
For Laravel 5.3 and below, (*6)
composer require optimus/genie ~1.0
Implementation
The examples will use a hypothetical Eloquent model named User
., (*7)
<?php
namespace App\Repositories;
use App\Models\User;
use Optimus\Genie\Repository;
class UserRepository extends Repository
{
protected function getModel()
{
return new User;
}
}
Options
Genie is already integrated with Optimus\Bruno.
See Bruno documentation for more information.
The $options
key given by all get-methods takes the following format:, (*8)
Parameter |
Value type |
Description |
includes |
array |
Array of relationships to eager load |
sort |
array |
Array of sorting rules, e.g. [['key' => 'username', 'direction' => 'ASC']]
|
filter_groups |
array |
See Bruno documentation |
limit |
int |
Rows per page |
page |
int |
The page to start from (use with limit) |
Note: If you use the controller of Bruno it will automatically parse the request's
query string into the correct format., (*9)
API
The examples will use a hypothetical Eloquent model named User
., (*10)
get (array $options = [])
Get all User
rows, (*11)
getById ($id, array $options = [])
Get one User
by primary key, (*12)
getRecent (array $options = [])
Get User
rows ordered by created_at
descending, (*13)
getRecentWhere (string $column, mixed $value, array $options = [])
Get User
rows where $column=$value
, ordered by created_at
descending, (*14)
getWhere (string $column, mixed $value, array $options = [])
Get User
rows where $column=$value
, (*15)
getWhereArray (array $clauses, array $options = [])
Get User
rows by multiple where clauses ([$column1 => $value1, $column2 => $value2]
), (*16)
getWhereIn (string $column, array $values, array $options = [])
Get User
rows where $column
can be any of the values given by $values
, (*17)
getLatest (array $options = [])
Get the most recent User
, (*18)
getLatestWhere (string $column, mixed $value, array $options = [])
Get the most recent User
where $column=$value
, (*19)
delete ($id)
Delete User
rows by primary key, (*20)
deleteWhere ($column, $value)
Delete User
rows where $column=$value
, (*21)
deleteWhereArray (array $clauses)
Delete User
rows by multiple where clauses ([$column1 => $value1, $column2 => $value2]
), (*22)
Standards
This package is compliant with PSR-1, PSR-2 and PSR-4. If you notice compliance oversights,
please send a patch via pull request., (*23)
Testing
bash
$ phpunit
, (*24)
Contributing
Please see CONTRIBUTING for details., (*25)
License
The MIT License (MIT). Please see License File for more information., (*26)