2017 © Pedro Peláez
 

library genie

image

optimus/genie

  • Wednesday, September 13, 2017
  • by esbenp
  • Repository
  • 3 Watchers
  • 19 Stars
  • 23,840 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 15 Forks
  • 1 Open issues
  • 17 Versions
  • 17 % Grown

The README.md

Genie

Latest Version Software License Build Status Coverage Status Total Downloads, (*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)

The Versions