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.