rkooistra/super-eloquent-repository

A concrete repository for Eloquent models to allow quick implementation of common functionalities, such as CRUD and search methods. Save yourself the boring stuff.
3,024 1
Install
composer require rkooistra/super-eloquent-repository
Latest Version:1.0.2-stable
PHP:>=7.2
License:MIT
Last Updated:Apr 29, 2020
Links: GitHub  ·  Packagist
Maintainer: keukenmagazijn

Super Eloquent Repository

Introduction

Welcome to the Super Eloquent Repository library package! This library has the simple use of eliminating having to write the same method over and over again for all your Repositories, allowing you to do the fun programming.

The package is basically a concrete superclass which you can extend all your default Eloquent repositories with. This superclass contains all basic functionalities which you would normally have to write again and again for normal CRUD methods.

How to install and use the package

  • Implement this package into your project by running composer require rkooistra/super-eloquent-repository.
  • Create a class which extends the RKooistra\SuperEloquentRepository\Abstracts\ConcreteResourceRepository package.
  • You must implement the getModel() stub per the inheritance rules; configure this to return the class of your respective model, ie:
    /** @return string <Return the full path to the class here.> */
    protected function getModelClass(): string
    {
        return \App\Entities\User::class;
    }
    
  • You should now be able to use all of the implemented methods!

Available methods (per 19-12-2019)

public function getModel(): Builder;
public function setConnection($connection);
public function getAll(array $selectKeys = null, array $relations = null);
public function findByKey(
    string $key,
    string $value,
    array $selectKeys = null,
    array $relations = null
): Collection;
public function findByKeyWhereIn(
    string $key,
    array $array,
    array $selectKeys = null
): Collection;
public function findByKeyWhereNotIn(
    string $key,
    array $array,
    array $selectKeys = null
): Collection;
public function findOrFail(int $id, array $selectKeys = null): Model;
public function getAllResources (array $selectKeys = [], array $relations = []): Collection;
public function getAllResourcesWhereHas (string $whereHasRelation, $whereHasCallback, array $selectKeys = [], array $relations = []): Collection;
public function findByKeyWhereLike(string $key, string $value, array $selectKeys = null, array $relations = null): Collection;
public function updateResource(int $id, array $fields): int;
public function createResourceByArray(array $array): Model;
public function destroy(string $selectKey, array $ids): int;
public function destroyWhereNotIn(string $selectKey, array $ids): int;
public function firstOrCreate(array $insertables, string $identifierKey = 'id', array $selectKeys = [], array $relations = []): Model;
public function updateFirstOrCreate(array $insertables, string $identifierKey = 'id', array $selectKeys = [], array $relations = []): Model;

Related Packages

doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

641,106,524 9,700
laravel/framework

The Laravel Framework.

593,882,149 34,959
laravel/tinker

Powerful REPL for the Laravel framework.

502,645,077 7,441
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

418,291,778 609
nunomaduro/collision

Cli error handling for console/command-line PHP applications.

394,964,158 4,660

Version History

Version Released PHP Laravel License
1.0.2-stable >=7.2 >=5.5 MIT
1.0.1-stable >=7.2 >=5.5 MIT
1.0.0-stable >=7.3 >=5.5 MIT