jmrashed / laravel-module-generator
A Laravel package to generate and manage modular components effortlessly.
Requires
- php: ^7.4 || ^8.0
- illuminate/support: ^7.0 || ^8.0 || ^9.0 || ^10.0
- nette/php-generator: ^3.5
- nwidart/laravel-modules: ^8.2
README
π A simple and flexible Laravel package to scaffold modular components with ease and speed.
The Laravel Module Generator helps you quickly create fully structured, reusable modules within your Laravel projects β perfect for organizing large applications and promoting clean architecture.
π Table of Contents
β¨ Features
- π¦ Generate Laravel modules with MVC structure
- π§ Supports custom namespaces and folder structures
- π§° Command-line driven with Artisan commands
- π Easily customizable and extendable
- π Keeps your Laravel app clean, modular, and maintainable
π Installation
Via Composer
composer require jmrashed/laravel-module-generator --dev
Alternatively, you can clone this repository:
git clone git@github.com:jmrashed/laravel-module-generator.git
cd laravel-module-generator
composer install
Publish Configuration (Optional)
php artisan vendor:publish --tag=module-generator-config
This will create a config/module-generator.php
file where you can customize module settings.
βοΈ Configuration
You can customize the following in config/module-generator.php
:
- Base modules path (default:
modules/
) - Default namespace
- Folder structure (e.g., Controllers, Models, Views, etc.)
- Custom routing configurations
- Middleware and service provider setups
This allows you to adapt the package to fit your projectβs architecture standards.
π Usage
Basic Usage
To generate a new module, run:
php artisan make:module Blog
This will scaffold the module with default folders and routing files under modules/Blog
.
Available Options
Option | Description |
---|---|
--with-model |
Also create a model class for the module |
--api |
Generate an API-ready module (Controller + Routes) |
--force |
Overwrite module if it already exists |
Real-World Example
To create an API module with a Blog model, simply run:
php artisan make:module Blog --with-model --api
This will create a Blog
module under modules/Blog/
with:
BlogController.php
Blog.php
modelapi.php
routes
Example structure:
modules/
βββ Blog/
βββ Controllers/
β βββ BlogController.php
βββ Models/
β βββ Blog.php
βββ Routes/
β βββ api.php
βββ Views/
βββ index.blade.php
π§ͺ Testing
To run tests:
php artisan test
Or directly with PHPUnit:
vendor/bin/phpunit
π€ Contributing
We welcome contributions! If you'd like to contribute, please follow these steps:
- Fork the repository
- Create your branch (
git checkout -b feature/your-feature-name
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin feature/your-feature-name
) - Create a Pull Request
Please ensure that your code follows PSR-12 coding standards and includes tests for new features.
For more detailed guidelines, please check the CONTRIBUTING.md file.
π License
This package is open-source software licensed under the MIT license.
π Acknowledgements
Built with β€οΈ by Md Rasheduzzaman.
Follow me on GitHub or Twitter for more Laravel goodies.