# Introduction

nwidart/laravel-modules is a Laravel package which was 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 10.

Find out why you should use this package in the article: Writing modular applications with laravel-modules.

Heads up: If you upgrade to v6 from previous version, run the following command: php artisan module:v6:migrate

Upgrading from v8.3.0

If you have an existing config file, and you get an error:

Target class [CommandMakeCommand] does not exist

replace the commands array with:

 'commands' => \Nwidart\Modules\Providers\ConsoleServiceProvider::defaultCommands()
        ->merge([
            // New commands go here
        ])->toArray(),

Quick Example

Generate your first module using php artisan module:make Blog. The following structure will be generated.

Modules/
  ├── Blog/
      ├──app
          ├── Http/
          ├── Models/
              ├── Controllers/
              ├── Middleware/
              ├── Requests/
          ├── Providers/
              ├── BlogServiceProvider.php
              ├── RouteServiceProvider.php
     ├── config/
     ├── database/
          ├── factories/
          ├── migrations/
          ├── seeders/
      ├── lang
      ├── resources/
          ├── assets/
          ├── views/
      ├── routes/
          ├── api.php
          ├── web.php
      ├── tests/
      ├── composer.json
      ├── module.json
      ├── package.json
      ├── vite.config.js

Laravel Package built by Nicolas Widart.
Maintained by David Carr follow on X @dcblogdev