zingle-com/laravel-modules

Adds Modules to Laravel.
19,926
Install
composer require zingle-com/laravel-modules
Latest Version:1.0.0
PHP:~7.0|~7.1
License:MIT
Last Updated:Jan 31, 2020
Links: GitHub  ·  Packagist
Maintainer: zquintana

Laravel Modules

Build Status Coverage Status

Simple helpers for adding modular architecture to your Laravel project.

Overview

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.

Installation

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"

Usage

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 is app/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,
	],