Back to Laravel Modules

Laravel-Modules

README.md

13.0.03.6 KB
Original Source

Laravel-Modules

Laravellaravel-modules
5.4^1.0
5.5^2.0
5.6^3.0
5.7^4.0
5.8^5.0
6.0^6.0
7.0^7.0
8.0^8.0
9.0^9.0
10.0^10.0
11.0^11.0
12.0^12.0
13.0^13.0

nwidart/laravel-modules is a Laravel package created to manage your large Laravel app using modules. A Module is like a Laravel package, it has some views, controllers or models. This package is supported and tested in Laravel 11.

This package is a re-published, re-organised and maintained version of pingpong/modules, which isn't maintained anymore.

With one big bonus that the original package didn't have: tests.

Install

To install via Composer, run:

bash
composer require nwidart/laravel-modules

The package will automatically register a service provider and alias.

Optionally, publish the package's configuration file by running:

bash
php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider"

Autoloading

from v11.0 autoloading "Modules\\": "modules/", is no longer required, and should be removed from your composer.json if present.

By default, the module classes are not loaded automatically. You can autoload your modules by adding merge-plugin to the extra section:

json
"extra": {
    "laravel": {
        "dont-discover": []
    },
    "merge-plugin": {
        "include": [
            "Modules/*/composer.json"
        ]
    }
},

Important

on the first installation you will be asked:

bash
Do you trust "wikimedia/composer-merge-plugin" to execute code and wish to enable it now? (writes "allow-plugins" to composer.json) [y,n,d,?]

Answer y to allow the plugin to be executed. Otherwise, you will need to manually enable the following to your composer.json:

json
"config": {
    "allow-plugins": {
        "wikimedia/composer-merge-plugin": true
    }

if "wikimedia/composer-merge-plugin": false modules will not be autoloaded.

Tip: don't forget to run composer dump-autoload afterwards

Documentation

You'll find installation instructions and full documentation on https://laravelmodules.com/.

Community

We also have a Discord community. https://discord.gg/hkF7BRvRZK For quick help, ask questions in the appropriate channel.

Credits

License

The MIT License (MIT). Please see License File for more information.