Laravel 5 repository generator.
composer require ozankurt/repoist --dev
You'll only want to use these generators for local development, so you don't want to update the production providers
array in config/app.php
. Instead, add the provider in app/Providers/AppServiceProvider.php
, like so:
public function register()
{
if ($this->app->isLocal()) {
$this->app->register('Kurt\Repoist\RepoistServiceProvider');
}
}
Run php artisan vendor:publish
from the console to configure the Repoist according to your needs.
You're all set. Run php artisan
from the console, and you'll see the new commands in the make:repository
namespace section.
php artisan make:repository Task
Will output:
app/Interfaces/Task/TaskRepositoryInterface.php
(contract)app/Repositories/Task/TaskRepositoryEloquent.php
php artisan make:repository Task -m
Will output:
app/Interfaces/Task/TaskRepositoryInterface.php
(contract)app/Repositories/Task/TaskRepositoryEloquent.php
app/Models/TaskEloquent.php
If somehow you cannot publish the config/repoist.php
from artisan here you can copy and use it.
<?php
return [
/**
* Default paths.
* In this case:
* app/Interfaces
* app/Repositories
* app/Models
*/
'paths' => [
'contract' => 'app/Interfaces',
'eloquent' => 'app/Repositories',
'model' => 'app/Models',
],
/**
* Configure the naming convention you wish for your repositories.
*
* Example: php artisan make:repository Users
* - Contract: UsersRepository
* - Eloquent: EloquentUsersRepository
* - Model : UsersEloquent
*/
'fileNames' => [
'contract' => '{name}RepositoryInterface',
'eloquent' => '{name}RepositoryEloquent',
'model' => '{name}Eloquent',
],
];