LaravelPackages.net
Acme Inc.
Toggle sidebar
arafat-web/repository

simple laravel repository pattern

12
0
v1.0.4
About arafat-web/repository

arafat-web/repository is a Laravel package for simple laravel repository pattern. It currently has 0 GitHub stars and 12 downloads on Packagist (latest version v1.0.4). Install it with composer require arafat-web/repository. Discover more Laravel packages by arafat-web or browse all Laravel packages to compare alternatives.

Last updated

laravel-repository

Simple but powerfull laravel repository pattern


Installation

composer require arafat-web/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('john')->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.

Comments