PHPackages                             longaodai/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. [Utility &amp; Helpers](/categories/utility)
4. /
5. longaodai/laravel-repository

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

longaodai/laravel-repository
============================

A clean and simple repository pattern implementation for Laravel

v1.0.3(7mo ago)16MITPHPPHP &gt;=8.0

Since Sep 13Pushed 7mo agoCompare

[ Source](https://github.com/longaodai/laravel-repository)[ Packagist](https://packagist.org/packages/longaodai/laravel-repository)[ RSS](/packages/longaodai-laravel-repository/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (1)Versions (12)Used By (0)

Laravel Repository Pattern
==========================

[](#laravel-repository-pattern)

[![Latest Version on Packagist](https://camo.githubusercontent.com/84400c7edfea8b6d78713acf1a2fd25af9bccd2b54c462b7352e314982add8dd/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6c6f6e67616f6461692f6c61726176656c2d7265706f7369746f72792e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/longaodai/laravel-repository)[![Total Downloads](https://camo.githubusercontent.com/3a8153bc3ee48559b92b5062c81b17bad7fa2d357f8a22f42515e4a38613b4d1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6c6f6e67616f6461692f6c61726176656c2d7265706f7369746f72792e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/longaodai/laravel-repository)[![License](https://camo.githubusercontent.com/42266dc6603d586462844b05e8db0ca3d3b8f853f713cba1ac50714e23ff3f3c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6c6f6e67616f6461692f6c61726176656c2d7265706f7369746f72792e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/longaodai/laravel-repository)

A comprehensive Laravel package that implements the **Repository** and **Service Layer** design patterns, providing a clean and maintainable way to interact with your Eloquent models. This package promotes separation of concerns, making your code more testable, organized, and following SOLID principles.

Features
--------

[](#features)

- **Repository Pattern Implementation** - Clean abstraction layer between your controllers and models
- **Service Layer Pattern** - Business logic separation from controllers
- **Artisan Commands** - Generate repositories and services with simple commands
- **Interface-Based** - Follows dependency inversion principle
- **Performance Optimized** - Built with Laravel best practices
- **Rich Query Methods** - Comprehensive set of query methods out of the box

Requirements
------------

[](#requirements)

- PHP &gt;= 8.0
- Laravel &gt;= 9.0

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

[](#installation)

You can install the package via Composer:

```
composer require longaodai/laravel-repository
```

Publish the configuration file:

```
php artisan vendor:publish --tag=laravel-repository
```

This will create a `config/repository.php` file where you can customize package settings.

Quick Start
-----------

[](#quick-start)

Generate a complete repository and service for your model:

```
php artisan make:repository User
```

### Available Options:

[](#available-options)

- `--model=ModelName`: Specify the model class name
- `--force`: Overwrite existing files

### Generated Files:

[](#generated-files)

```
Repository Interface ........... App\Repositories\User\UserRepositoryInterface
Repository Implementation ...... App\Repositories\User\UserEloquentRepository
Service Interface .............. App\Services\User\UserServiceInterface
Service Implementation ......... App\Services\User\UserService

```

Important Note: Service Provider Registration
---------------------------------------------

[](#important-note-service-provider-registration)

The service provider registration depends on your Laravel version and configuration:

### For Provider Binding Mode (Default - Works well on all Laravel versions)

[](#for-provider-binding-mode-default---works-well-on-all-laravel-versions)

If your `config/repository.php` has `'binding_mode' => 'provider'` (default), you **must** register the service providers.

Add the generated service providers to your `bootstrap/providers.php` (only once after running the first make repository command):

```
