jmrashed / laravel-module-generator
A Laravel package to generate and manage modular components effortlessly.
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/jmrashed/laravel-module-generator
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.phpBlog.phpmodelapi.phproutes
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.