danielemontecchi / laravel-custom-makes
Create custom make commands in Laravel using a CLI wizard
Requires
- php: ^8.2
- illuminate/console: ^10.0|^11.0|^12.0
- illuminate/support: ^10.0|^11.0|^12.0
Requires (Dev)
- orchestra/testbench: ^10.2
- pestphp/pest: ^3.8
README
Generate custom Laravel classes using reusable stubs with Artisan.
๐ฆ Installation
You can install the package via Composer:
composer require danielemontecchi/laravel-custom-makes
โ๏ธ Configuration
You can optionally publish the config file:
php artisan vendor:publish --tag=laravel-custom-makes-config
This will create config/laravel-custom-makes.php
with the following options:
stubs_path
: path for storing custom stub files (default:stubs
)
๐ Usage
Create a custom stub
To define a new generator stub:
php artisan create:make service
This creates a stub file:
stubs/service.stub
If the stub already exists, the command will abort.
The generated stub will contain a simple template.
Generate a class from a custom stub
Use make:custom
with the stub type and class name:
php artisan make:custom service UserService
This will create:
app/Services/UserService.php
If no name is passed, it will generate (or suggest) the stub instead.
You can also nest namespaces, e.g.
Admin/UserService
will generateapp/Services/Admin/UserService.php
Listing available custom generators
Run the following to see all available custom stubs:
php artisan make:custom-list
The command filters out Laravel native stub types.
๐ Stub management
Custom stubs are stored in:
stubs/
You can edit or remove these files manually. Stub content uses placeholders like {{ namespace }}
, {{ class }}
, etc.
โ Supported placeholders
All stub templates can include the following placeholders:
{{ namespace }}
: Fully-qualified namespace of the class{{ class }}
: The class name{{ name }}
: The raw input name
๐งช Running tests
To run the test suite:
./vendor/bin/pest
Tests are powered by Pest and Orchestra Testbench.
๐ Contributing
Pull requests are welcome. For major changes, please open an issue first.
๐ License
The MIT License (MIT). See License File for more information.
Made with โค๏ธ by Daniele Montecchi