🚀 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.
- 📦 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
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
php artisan vendor:publish --tag=module-generator-config
This will create a config/module-generator.php
file where you can customize module settings.
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.
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
.
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 |
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
To run tests:
php artisan test
Or directly with PHPUnit:
vendor/bin/phpunit
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.
This package is open-source software licensed under the MIT license.
Built with ❤️ by Md Rasheduzzaman.
Follow me on GitHub or Twitter for more Laravel goodies.