PHPackages                             mohammadmehrabani/repository-generator - 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. mohammadmehrabani/repository-generator

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

mohammadmehrabani/repository-generator
======================================

Quickly generating repository and interfaces from existing model files

1.0.1(5y ago)18MITPHP

Since Feb 27Pushed 5y ago1 watchersCompare

[ Source](https://github.com/MohammadMehrabani/repository-generator)[ Packagist](https://packagist.org/packages/mohammadmehrabani/repository-generator)[ RSS](/packages/mohammadmehrabani-repository-generator/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (1)Dependencies (2)Versions (3)Used By (0)

Laravel - Repository Generator
==============================

[](#laravel---repository-generator)

[![version](https://camo.githubusercontent.com/34e695c6016bc2a934a96bed696e29b2f2ab562a7134d65a55d00653cd506bea/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d312e302e302d626c75652e737667)](https://camo.githubusercontent.com/34e695c6016bc2a934a96bed696e29b2f2ab562a7134d65a55d00653cd506bea/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d312e302e302d626c75652e737667) [![license](https://camo.githubusercontent.com/8bb50fd2278f18fc326bf71f6e88ca8f884f72f179d3e555e20ed30157190d0d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e2e737667)](https://camo.githubusercontent.com/8bb50fd2278f18fc326bf71f6e88ca8f884f72f179d3e555e20ed30157190d0d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e2e737667)

About
-----

[](#about)

Repository Generator is a Laravel package that aims to generate repository and interface files and binding interfaces to implementations automatically for repository pattern. It gives you developing speed by automated operations. You can use this package for both ongoing and new projects.

- Highly customizable with simple config
- Overriding option
- Easy to improve

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

[](#installation)

You can install the package via Composer:

```
composer require mohammadmehrabani/repository-generator:dev-master
```

Next, you must install the service provider to `config/app.php`:

```
'providers' => [
    // for laravel 5.4 and below
    MohammadMehrabani\RepositoryGenerator\RepositoryGeneratorServiceProvider::class,
];
```

Then, if you want to customize folder names, namespaces, etc... You need to publish config with command:

```
php artisan vendor:publish --provider="MohammadMehrabani\RepositoryGenerator\RepositoryGeneratorServiceProvider" --tag="config"
```

Now you can edit `config/repository-generator.php`

Usage
-----

[](#usage)

Before using `generate` commdand you should customize `config/repository-generator.php` for your own use. You can simply use `repository:generate` command by terminal:

```
php artisan repository:generate
```

Next, you must install the service provider to `config/app.php`:

```
'providers' => [
    // You can change service_provider_class from config/repository-generator.php
    App\Providers\RepositoryServiceProvider::class,

],
```

### Repository file provided by RepositoryGenerator (optional use)

[](#repository-file-provided-by-repositorygenerator-optional-use)

This package contains Repository.php which has similar functions to Eloquent. You can basically do something like below when you extend class from `\MohammadMehrabani\RepositoryGenerator\Repository`

This is completely personal and optional. I just created/copied some functions from Eloquent to add similar functionalities directly to repository file. So I can use same methods in my controller If I extend or implement this repository/interface for other database source like mongodb.

```
