Dcblogdev's Module Generator
Laravel package for generating Laravel Modules from a template.
https://github.com/dcblogdev/laravel-module-generator
#Install
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.
#Usage
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.
#Placeholders:
These placeholders are replaced with the name provided when running php artisan module:build
#Used in filenames:
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
#Only used inside files:
{Module}
= Module name ie PurchaseOrders
{module}
= Module name in lowercase ie purchaseOrder
{module_}
= module name with underscores ie purchase_orders
module_plural
= Plural module name in lowercase ie demo becomes demos
{module-}
= module name with hyphens ie purchase-orders
{module }
= module name puts space between capital letters ie PurchaseOrders
becomes Purchase Orders
{Model}
= Model name ie PurchaseOrder
{model}
= Model name in lowercase ie purchaseOrder
{model_}
= model name with underscores ie purchase_orders
{model-}
= model name with hyphens ie purchase-orders
{model }
= model name puts space between capital letters ie PurchaseOrder
becomes Purchase Order
Laravel Package built by Nicolas Widart.
Maintained by David Carr follow on X @dcblogdev