arafat69/laravel-repository

simple laravel repository pattern

v1.2.1 2024-06-07 13:20 UTC

This package is auto-updated.

Last update: 2024-06-07 13:29:39 UTC


README

Packagist Stars GitHub issues Total Downloads Latest Stable Version License

laravel-repository

Simple but powerfull laravel repository pattern

Installation

composer require arafat69/laravel-repository

After installing the package you will see a file repository.php is created inside repositories folder

##Make a repository

php artisan make:repository UserRepository
or
// use scope for specific model
php artisan make:repository UserRepository --model=User

How to create function in repository

//Create
public static function storeByRequest($request): User
{
    return self::create([
        'first_name' => $request->first_name,
        'last_name' => $request->last_name,
        'email' => $request->email,
        // ...
    ]);
}

// Update
public static function updateByRequest($request, User $user): User
{
    self::update($user, [
        'first_name' => $request->first_name,
        'last_name' => $request->last_name,
        'email' => $request->email,
        // ...
    ]);

    // or

    $user->update([
        // your update data
    ])

    return $user;
}
// etc...

Use from controller

Import first the Repository

//example UserRepository
use App\Repositories\UserRepository;
// get all user
UserRepository::getAll(); //retun all users
// filter user use query
UserRepository::query()->whereName('jon')->get();
// store method call 
UserRepository::storeByRequest($request);
// update method call 
UserRepository::updateByRequest($request, $user);
//find
UserRepository::find($userID);
//get first recode
UserRepository::first();
// delete recode
UserRepository::delete($userID);

Publish stubs folder

php artisan vendor:publish --tag=stubs

Contribution

You're open to create any Pull request.