This is a simple package that includes some of custom Laravel artisan command into Laravel/Lumen.
Note: This repository now follows the Laravel/Lumen framework versioning. Use the appropriate version of this package for your Laravel/Lumen application.
You can install the package via composer:
composer require mazfreelance/laravel-command-generator
composer require mazfreelance/laravel-command-generator=^1.0.0
make:action Create a new Action class
make:dto Create a new Data Transfer Object class
The default namespace for all command are App\Actions\
and each name expects the filter classname to follow the {$Name}Action
naming convention. Here is an example of action and data transfer objects based on the default naming convention.
Actions | Data Transfer Object |
---|---|
App\Actions\UserFilter |
App\DTO\UserFilter |
App\Actions\PrivatePostFilter |
App\DTO\PrivatePostFilter |
App\Actions\GuestPostFilter |
App\DTO\GuestPostFilter |
Registering the service provider will give you access to the
php artisan model:action {name}
command as well as allow you to publish the configuration file. Registering the service provider is not required and only needed if you want to change the default namespace or use the artisan command
After installing the Custom Command library, register the Mazfreelance\LaravelCommandGenerator\ServiceProvider::class
in your config/app.php
configuration file:
'providers' => [
// Other service providers...
Mazfreelance\LaravelCommandGenerator\ServiceProvider::class,
],
Copy the package config to your local config with the publish command:
php artisan vendor:publish --provider="Mazfreelance\LaravelCommandGenerator\ServiceProvider::class"
If install version 2.1.0 (Lumen can use this part if install mazfreelance/lumen-vendor-publish
),
Optionally, You can publish the config file with:
# If install version 2.1.0
# Optionally, You can publish the config file with:
php artisan vendor:publish --provider="Spatie\LaravelData\LaravelDataServiceProvider" --tag="data-config"
In the config/custom-command.php
config file. Set the namespace your model filters will reside in:
'namespace' => [
'action' => 'App\\Actions\\',
'dto' => 'App\\DTO\\',
]
This is only required if you want to use the
php artisan make:action|dto
command. #Avaiable Command
In bootstrap/app.php
:
$app->register(Mazfreelance\LaravelCommandGenerator\ServiceProvider::class);
// If install version 2.1.0,
$app->register(Spatie\LaravelData\LaravelDataServiceProvider::class);
In bootstrap/app.php
:
config(['custom-command.action.namespace' => "App\\Actions\\"]);
config(['custom-command.dto.namespace' => "App\\DTO\\"]);
Please see the changelog for more information on what has changed recently.
MIT. Please see the license file for more information.