PHPackages                             arafatdev/laravel-repository - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. arafatdev/laravel-repository

ActiveLibrary[Database &amp; ORM](/categories/database)

arafatdev/laravel-repository
============================

Laravel Repository Pattern package with built-in Artisan commands. Easily create repositories, follow clean architecture, and simplify database interactions.

v3.1.1(7mo ago)676MITPHPPHP &gt;=7.3

Since Nov 24Pushed 7mo ago1 watchersCompare

[ Source](https://github.com/arafat-dev/laravel-repository)[ Packagist](https://packagist.org/packages/arafatdev/laravel-repository)[ Docs](https://github.com/arafat-dev/laravel-repository)[ RSS](/packages/arafatdev-laravel-repository/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (6)Dependencies (2)Versions (9)Used By (0)

[ ![Packagist Stars](https://camo.githubusercontent.com/b6f3f9009f01224eec379db7fdb7d1e51202b676f6b6fedf1195594542194f65/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f73746172732f6172616661746465762f6c61726176656c2d7265706f7369746f7279)](https://packagist.org/packages/arafatdev/laravel-repository)[ ![GitHub issues](https://camo.githubusercontent.com/07a249715e0c1e3a1abf1a30269b2f8c6cfd9f5f484fdd357e5d318a5bf363a5/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f6172616661746465762f6c61726176656c2d7265706f7369746f7279)](https://github.com/arafat-dev/laravel-repository/issues)[ ![Total Downloads](https://camo.githubusercontent.com/06adc3dcaf1a76e397d2e121662f16cc9550716dd464da5f295717703114ff1e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6172616661746465762f6c61726176656c2d7265706f7369746f7279)](https://packagist.org/packages/arafatdev/laravel-repository)[ ![Latest Stable Version](https://camo.githubusercontent.com/a03f2e8fec88350741596c34a88a557c6a00ecd8fa2f67dbcfa1b632c9feee07/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6172616661746465762f6c61726176656c2d7265706f7369746f7279)](https://packagist.org/packages/arafatdev/laravel-repository)[ ![License](https://camo.githubusercontent.com/1066bb82fd7e28e7bcc3b86c94163a62b3718fffd4b3852f9a51d6170cf02464/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6172616661746465762f6c61726176656c2d7265706f7369746f7279)](https://packagist.org/packages/arafatdev/laravel-repository)

Laravel Repository
==================

[](#laravel-repository)

A lightweight yet powerful Laravel repository pattern package with built-in Artisan commands to rapidly generate repositories. Designed to promote clean architecture, improve code maintainability, and simplify database interactions. Fully compatible with Laravel 7+.

---

Features
--------

[](#features)

- Generate repositories using Artisan commands
- Supports **model-specific repositories**
- Clean, maintainable code following **repository pattern**
- Easy CRUD operations in repositories
- Supports all Laravel versions from **7+**
- Optional stubs publishing for customization

---

Installation
------------

[](#installation)

```
composer require arafatdev/laravel-repository
```

After installation, the package automatically creates the app/Repositories directory to organize your repository classes.

---

Generating a Repository
-----------------------

[](#generating-a-repository)

```
php artisan make:repository UserRepository
```

With a model: // use scope for specific model

```
php artisan make:repository UserRepository --model=User
```

---

Defining Functions in Repository
--------------------------------

[](#defining-functions-in-repository)

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

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

    return $user;
}
```

---

Repository Function Examples
----------------------------

[](#repository-function-examples)

```
namespace App\Repositories;

use App\Models\User;
use Illuminate\Http\Request;
use Arafat\LaravelRepository\Repository;

class UserRepository extends Repository
{
    /**
     * base method
     *
     * @method model()
    */
    public static function model()
    {
        return User::class;
    }

    /**
     * Create a new record from request
     */
    public static function storeByRequest(Request $request): User
    {
        return self::create([
            'first_name' => $request->first_name,
            'last_name'  => $request->last_name,
            'email'      => $request->email,
            'phone'      => $request->phone,
            // add other fields here
        ]);
    }

    /**
     * Update an existing record
     */
    public static function updateByRequest(Request $request, User $user): User
    {
        $user->update([
            'first_name' => $request->first_name,
            'last_name'  => $request->last_name,
            'email'      => $request->email,
            'phone'      => $request->phone,
            // add other fields here
        ]);

        return $user;
    }

    /**
     * Update the logged-in user's profile
     */
    public static function profileUpdate(Request $request): User
    {
        $user = auth()->user();
        $user->update($request->only(['first_name', 'last_name', 'email', 'phone']));
        return $user;
    }

    /**
     * Get order summary for a user
     */
    public static function orderSummary(User $user)
    {
        return $user->orders()
                    ->selectRaw('count(*) as total_orders, sum(total) as total_amount')
                    ->first();
    }

    /**
     * Get all active users
     */
    public static function getActiveUsers()
    {
        return self::query()->where('status', true)->get();
    }

    /**
     * Delete a user
     */
    public static function deleteUser(User $user): bool
    {
        return $user->delete();
    }
}
```

---

Using Repository in Controller
------------------------------

[](#using-repository-in-controller)

```
use App\Repositories\UserRepository;

// --- Custom repository methods ---

// Store user
UserRepository::storeByRequest($request);

// Update a user
$user = UserRepository::updateByRequest($request, $user);

// Update current logged-in user's profile
$currentUser = UserRepository::profileUpdate($request);

// Get order summary
$orderSummary = UserRepository::orderSummary($user);

// Get all active users
$activeUsers = UserRepository::getActiveUsers();

// Delete a user
UserRepository::deleteUser($user);

// --- Built-in repository methods (from the base repository) ---

// Get all users
$users = UserRepository::getAll();

// Query users with conditions
$users = UserRepository::query()->where('name','Jon')->get();

// Find a specific user by ID
$user = UserRepository::find($userID);

// Get the first record
$user = UserRepository::first();

// Delete a user by ID
UserRepository::delete($userID);
```

---

### Publishing Stubs

[](#publishing-stubs)

```
php artisan vendor:publish --tag=stubs
```

---

Contribution
------------

[](#contribution)

Feel free to open Pull Requests or submit issues. Contributions are welcome!

---

License
-------

[](#license)

MIT

---

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance64

Regular maintenance activity

Popularity16

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~109 days

Recently: every ~25 days

Total

8

Last Release

220d ago

Major Versions

v1.3.0 → v2.0.02025-09-22

v2.1.0 → v3.0.02025-12-31

### Community

Maintainers

![](https://www.gravatar.com/avatar/54932a76bbd41a14ba2fddb6961689e6a225eedc2230ee3ebd60d113cbe9d2e0?d=identicon)[arafat-dev](/maintainers/arafat-dev)

---

Top Contributors

[![arafat-dev](https://avatars.githubusercontent.com/u/53016338?v=4)](https://github.com/arafat-dev "arafat-dev (27 commits)")

---

Tags

arafat-devlaravellaravel-packagephprepositoriesrepositoryrepository-patternlaravellaravel-packagerepository patterndesign patternsclean architecturelaravel-repositoryartisan-commandlaravel code generatorlaravel artisanrepository-generatorLaravel Design Patternlaravel repository patternservice repository patternlaravel repository generatorphp repository pattern

### Embed Badge

![Health badge](/badges/arafatdev-laravel-repository/health.svg)

```
[![Health](https://phpackages.com/badges/arafatdev-laravel-repository/health.svg)](https://phpackages.com/packages/arafatdev-laravel-repository)
```

###  Alternatives

[spatie/laravel-medialibrary

Associate files with Eloquent models

6.2k45.4M693](/packages/spatie-laravel-medialibrary)[laravel/sail

Docker files for running a basic Laravel application.

1.9k212.4M1.4k](/packages/laravel-sail)[laravel/ai

The official AI SDK for Laravel.

1.1k4.6M293](/packages/laravel-ai)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

79227.1M208](/packages/laravel-mcp)[propaganistas/laravel-disposable-email

Disposable email validator

6023.2M7](/packages/propaganistas-laravel-disposable-email)[iazaran/smart-cache

Smart Cache is a caching optimization package designed to enhance the way your Laravel application handles data caching. It intelligently manages large data sets by compressing, chunking, or applying other optimization strategies to keep your application performant and efficient.

21114.2k](/packages/iazaran-smart-cache)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
