nWidart/laravel-modules
nWidart/laravel-modules has 6,222 GitHub stars and 1,014 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-07 12:33 UTC. Last push 2026-10-28.
Module Management In Laravel
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
What it does
- Splits a large Laravel app into modules that live in
Modules/. - Each module is a self-contained unit with its own service providers, routes, controllers, models, views, migrations, config and translations. It works like a small Laravel package inside your app.
- Modules can be enabled or disabled. Only enabled modules are booted. Status is stored by an activator (a JSON file by default).
- Artisan generators create modules and the classes inside them:
module:make,module:make-controller,module:make-model,module:make-migration, and more.
php artisan module:make Blog generates:
Modules/Blog/
├── app/ Http/Controllers, Providers
├── config/
├── database/ factories, migrations, seeders
├── resources/ assets, views
├── routes/ web.php, api.php
├── tests/ Feature, Unit
├── composer.json
├── module.json
├── package.json
└── vite.config.js
Requirements
PHP 8.3+ and Laravel 13 for the current version. See Versions for older Laravel releases.
Install
composer require nwidart/laravel-modules
The service provider and alias are registered automatically. To publish the config file (optional):
php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider"
Autoloading
Module classes are autoloaded through wikimedia/composer-merge-plugin. Add this to the extra section of your app's composer.json:
"extra": {
"laravel": {
"dont-discover": []
},
"merge-plugin": {
"include": [
"Modules/*/composer.json"
]
}
},
On first install, Composer asks:
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. Or add it yourself:
"config": {
"allow-plugins": {
"wikimedia/composer-merge-plugin": true
}
}
If the plugin is set to false, modules are not autoloaded. After changing composer.json, run:
composer dump-autoload
Since v11.0, the
"Modules\\": "modules/"autoload entry is no longer needed. Remove it from yourcomposer.jsonif present.
Quick start
php artisan module:make Blog # create a module
php artisan module:list # list modules and their status
php artisan module:disable Blog # stop booting the module
php artisan module:enable Blog # boot it again
Versions
| Laravel | laravel-modules |
|---|---|
| 13 | ^13.0 |
| 12 | ^12.0 |
| 11 | ^11.0 |
| 10 | ^10.0 |
Older Laravel versions use the matching major: 5.4 uses ^1.0, 5.5 uses ^2.0, through Laravel 9 with ^9.0.
Documentation
Full documentation: https://laravelmodules.com/docs.
Credits
Originally based on pingpong/modules, which is no longer maintained.
License
MIT. See LICENSE.md.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,644 starspublic-apis/public-apis
A collective list of free APIs
496,896 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
439,727 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,110 stars