dcblogdev / laravel-module-generator
Generate Laravel Modules from a template.
Fund package maintenance!
dcblogdev
Installs: 4 980
Dependents: 1
Suggesters: 0
Security: 0
Stars: 71
Watchers: 4
Forks: 20
Open Issues: 0
Requires
- illuminate/support: 10.x|11.x
- laravel/prompts: ^0.1.15
- symfony/filesystem: ^6.0|^7.0
- symfony/finder: ^6.0|^7.0
README
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.
Requirements
PHP 8.2+ Laravel Modules package installed https://github.com/nWidart/laravel-modules
Video demo
https://www.youtube.com/watch?v=BwYzfb9Fa8A&t=2s
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
Contributing
Contributions are welcome and will be fully credited.
Contributions are accepted via Pull Requests on Github.
Pull Requests
-
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.
Security
If you discover any security related issues, please email dave@dcblog.dev email instead of using the issue tracker.
License
license. Please see the license file for more information.