Module systems


Laravel Idea uses the Module systems concept to understand the structure of applications. It helps to correctly complete the views, config, routes and more convenient code generation. Module system for the project can be configured in File | Settings | Languages & Frameworks | Laravel Idea | Module System:


Standard application

Typical Laravel application with one module in the app folder.

Simple directory modules

Module system for application with logical modules inside one directory. This article describes the reason and possible implementation: https://stitcher.io/blog/laravel-beyond-crud-01-domain-oriented-laravel

Each code generation has a configuration options about participating in modules. Database migrations usually don't need to be un the modules, but controllers do:

nWidart/laravel-modules package

Module system for application built using nWidart/laravel-modules package.

Package development

Module system for packages, not applications. It uses only composer.json file to determine namespaces.

Directory modules as composer packages

This module system is for projects with modules as separated composer packages. It uses modules composer.json file for namespaces.


Sources path parameter is a location of the main module (it is app for standard application).

Root directory path parameter is the directory containing module directories.

composer.json file location for modules with composer.json file not in the root of the module.