Generate Laravel Modules from a template.
dcblogdev/laravel-module-generator is a Laravel package for generate laravel modules from a template..
It currently has 78 GitHub stars and 10.796 downloads on Packagist (latest version v2.0.7).
Install it with composer require dcblogdev/laravel-module-generator.
Discover more Laravel packages by dcblogdev
or browse all Laravel packages to compare alternatives.
Last updated
There is a Discord community. https://discord.gg/VYau8hgwrm For quick help, ask questions in the appropriate channel.
Laravel package for generating Laravel Modules from a template.
PHP 8.2+ Laravel Modules package installed https://github.com/nWidart/laravel-modules
https://www.youtube.com/watch?v=BwYzfb9Fa8A&t=2s
You can install the package via composer:
composer require dcblogdev/laravel-module-generator
Publish both the config and stubs:
php artisan vendor:publish --provider="Dcblogdev\ModuleGenerator\ModuleGeneratorServiceProvider"
This will publish a module-generator.php config file
This contains:
'template' => [
'Breeze - Blade - CRUD Web & API' => 'stubs/module-generator/breeze-crud-full',
'Breeze - Blade - CRUD Web only' => 'stubs/module-generator/breeze-crud-web',
'Breeze - Blade - CRUD API only' => 'stubs/module-generator/breeze-crud-api'
],
'ignore_files' => ['module.json']
By default, the stubs will be located at stubs/module-generator you can add your paths by adding folders and updating the config file.
php artisan module:build
{module?} is the name of the module you want to create. If you don't provide a name you will be asked to enter one.
{template?} is the name of the template you want to use. If you don't provide a name you will be asked to enter one.
php artisan module:build Contacts "Breeze - CRUD API only"
Once a module has been created, enable it:
php artisan module:enable ModuleName
Then run:
composer dump-autoload
Create or update the stubs file. The filename and contents should have placeholders for example ModulesController will be replaced with your name + Controller. ie ContactsController when the command is executed.
These placeholders are replaced with the name provided when running php artisan module:build
Module = Module name ie Contacts
module = Module name in lowercase ie contacts
module_plural = Plural module name in lowercase ie demo becomes demos
Model = Model name ie Contact
model = Model name in lowercase ie contact
$name = 'PurchaseOrders')| Placeholder | Value | |---------------------------|---------------------| | {Module} | PurchaseOrders | | {Module } | Purchase Orders | | {Module-} | Purchase-Orders | | {Module_} | Purchase_Orders | | {ModuleCamel} | purchaseOrders | | {ModuleStudly} | PurchaseOrders | | {ModuleTitle} | Purchase Orders | | {module} | purchaseorders | | {module } | purchase orders | | {module-} | purchase-orders | | {module_} | purchase_orders | | {moduleCamel} | purchaseOrders | | {moduleStudly} | PurchaseOrders | | {modulePlural} | purchase orders | | {module_plural} | purchase orders | | {module_plural_snake} | purchase_orders | | {module_plural_kebab} | purchase-orders | | {module_title} | Purchase Orders |
$model = 'PurchaseOrder')| Placeholder | Value | |---------------------------|---------------------| | {Model} | PurchaseOrder | | {Model } | Purchase Order | | {Model-} | Purchase-Order | | {Model_} | Purchase_Order | | {ModelCamel} | purchaseOrder | | {ModelStudly} | PurchaseOrder | | {ModelTitle} | Purchase Order | | {model} | purchaseorder | | {model } | purchase order | | {model-} | purchase-order | | {model_} | purchase_order | | {modelCamel} | purchaseOrder | | {modelStudly} | PurchaseOrder | | {model_plural} | purchase orders | | {model_plural_snake} | purchase_orders | | {model_plural_kebab} | purchase-orders | | {model_title} | Purchase Order |
Contributions are welcome and will be fully credited.
Contributions are accepted via Pull Requests on Github.
Document any change in behaviour - Make sure the readme.md and any other relevant documentation are kept up-to-date.
Consider our release cycle - We try to follow SemVer v2.0.0. Randomly breaking public APIs is not an option.
One pull request per feature - If you want to do more than one thing, send multiple pull requests.
If you discover any security related issues, please email [email protected] email instead of using the issue tracker.
license. Please see the license file for more information.