Laravel Modules
Simple helpers for adding modular architecture to your Laravel project.
Modular architecture makes your application easier to understand and
scale. This package attempts to add support for modules with minimal
effort and greatest amount of flexibility. A Module
in this package
corresponds with a module grouping of code in your project.
Install the base package with composer.
$ composer install zingle-com/laravel-modules
Add service provider to your providers after the Illuminate providers,
but before your project service providers.
// config.php
// ...
'providers' => [
// ...
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\Session\SessionServiceProvider::class,
Illuminate\Notifications\NotificationServiceProvider::class,
/**
* Vendors
*/
// ...
ZingleCom\LaravelModules\ModuleServiceProvider::class,
// ...
/**
* Project providers
*/
],
Finally install the vendor assets:
$ php artisan vendor:publish --provider="ZingleCom\LaravelModules\ModuleServiceProvider::class"
After defining your modular structure, to create a new module simply
create add a new class that extends Module
to your base module
directory that corresponds with the name of the module. For example,
if you had a module named Auth
the base directory for which isapp/Modules/Auth
you would create the following class:
namespace App\Modules\Auth;
use ZingleCom\LaravelModules\Module\Module;
class AuthModule extends Module
{
}
Then add the new module class to config/modules.php
under the modules key like:
// modules.php
// ..
"modules" => [
App\Modules\Auth\AuthModule::class,
],