jmrashed/laravel-module-generator

A Laravel package to generate and manage modular components effortlessly.

v1.0.0 2025-04-08 20:31 UTC

This package is auto-updated.

Last update: 2025-04-08 20:46:01 UTC


README

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.