LaravelPackages.net
Acme Inc.
Toggle sidebar
dcblogdev/laravel-module-generator

Generate Laravel Modules from a template.

10.796
78
v2.0.7
About dcblogdev/laravel-module-generator

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

Community

There is a Discord community. https://discord.gg/VYau8hgwrm For quick help, ask questions in the appropriate channel.

Logo

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

Intro video

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
300550938-529c214d-a02a-4577-8904-c865b2f41f7e

{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 Placeholders ($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 Placeholders ($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 |

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 [email protected] email instead of using the issue tracker.

License

license. Please see the license file for more information.

Star History Chart