Modular Architecture
Laravel Modules (nWidart)
Package: nwidart/laravel-modules
Purpose: Organize large applications into self-contained modules
Module Status (modules_statuses.json):
{
"TaxModule": true,
"PaymentModule": true,
"NotificationModule": false
}Creating a New Module
# Generate module scaffold
php artisan module:make ModuleName
# Generate controller within module
php artisan module:make-controller ControllerName ModuleName
# Generate model within module
php artisan module:make-model ModelName ModuleName
# Generate migration within module
php artisan module:make-migration create_table_name ModuleNameModule Best Practices
- Single Responsibility: Each module handles one business capability
- Self-Contained: Module should work independently
- Clear Interfaces: Define contracts for inter-module communication
- Avoid Direct Dependencies: Use service providers and dependency injection
Last updated on