/laravel-module-generator

A simple and customizable Laravel Module Generator package to help you rapidly scaffold modular components in your Laravel application.

Primary LanguagePHPMIT LicenseMIT

Laravel Module Generator

Latest Version Build Status Total Downloads Test Status License

πŸš€ 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 model
  • api.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:

  1. Fork the repository
  2. Create your branch (git checkout -b feature/your-feature-name)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin feature/your-feature-name)
  5. 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.