From your templates :
class {{class}} extends {{contract}}
You mean 'implements' ?
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
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->environment() == 'local') {
$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/Repositories/Task/TaskRepository.php (contract)app/Repositories/Task/EloquentTaskRepository.php
php artisan make:repository Task -m
Will output:
app/Repositories/Task/TaskRepository.php (contract)app/Repositories/Task/EloquentTaskRepository.php
app/Task.php
If somehow you cannot publish the config/repoist.php from artisan here you can copy and use it.
<?php
return [
/**
* Default path of repositories in `app` folder.
* In this case:
* app/Repositories
*/
'path' => 'Repositories',
/**
* Default path of models in laravel is the `app` folder.
* In this case:
* app/
*/
'model_path' => '',
/**
* Configure the naming convention you wish for your repositories.
*/
'fileNames' => [
'contract' => '{name}Repository',
'eloquent' => 'Eloquent{name}Repository',
],
];
Please or to participate in this conversation.