The Principal Dev – Masterclass for Tech Leads

The Principal Dev – Masterclass for Tech Leads28-29 May

Join

Laravel-Modules

Latest Version on Packagist Software License Scrutinizer Coverage Total Downloads

Laravel laravel-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

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.

upgrade

To upgrade to version V12 follow Upgrade Guide on official document.

Install

To install via Composer, run:

composer require nwidart/laravel-modules

The package will automatically register a service provider and alias.

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

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:

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

Important

on the first installation you will be asked:

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:

"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.

Join libs.tech

...and unlock some superpowers

GitHub

We won't share your data with anyone else.