2017 © Pedro Peláez
 

laravel laravel-module-manager

Laravel Module Management

image

mrabbani/laravel-module-manager

Laravel Module Management

  • Wednesday, April 11, 2018
  • by mrabbani
  • Repository
  • 3 Watchers
  • 79 Stars
  • 931 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 14 Forks
  • 4 Open issues
  • 9 Versions
  • 51 % Grown

The README.md

Laravel Module Manager

Introduction

When you work on small project, you will feel laravel default structure is enough. When your project grows up, you will think to divide your app into modules where each module will contain all of it resources such as Controllers, Models, Views, Migrations, Config etc. This laravel-module-manager package will help you to manage laravel modular application easily., (*1)

Installation

  • laravel 5.4 or 5.5, (*2)

    composer require mrabbani/laravel-module-manager, (*3)

  • Laravel 5.3, Add the following line to your composer.json file and run composer install in your terminal., (*4)

    "mrabbani/laravel-module-manager": "^1.4", (*5)

If you are using Laravel<5.5 you have to add module manager service provider to config/app.php file, (*6)

Mrabbani\ModuleManager\Providers\ModuleProvider::class,, (*7)

To create new module run the bellow command:, (*8)

php artisan module:create name-of-your-module
php artisan module:install {module_alias_name}

Folder Structure

If your module name is module1 the module structure will be, (*9)

Module Structure, (*10)

Configuration

By default, all of your module will be placed inside modules directory into your application's base directory. If you want to change publish module_manager config file by, (*11)

php artisan vendor:publish, (*12)

Now you can change the default modules directory by changing module_directory value of config/module_manager.php file., (*13)

Available Commands

To see all module related commands run php artisan into terminal. Available commands are:, (*14)

  • php artisan module:create {alias}
  • php artisan module:make:controller {alias} {ControllerName}
  • php artisan module:make:controller {alias} {ControllerName} --resource
  • php artisan module:make:command {alias} {CommandName}
  • php artisan module:make:facade {alias} {FacadeName}
  • php artisan module:make:middleware {alias} {MiddlewareName}
  • php artisan module:make:migration {alias} {migration_name} --create --table=table_name
  • php artisan module:make:migration {alias} {migration_name} --table=table_name
  • php artisan module:make:model {alias} {ModelName}
  • php artisan module:make:provider {alias} {ProviderName}
  • php artisan module:make:request {alias} {RequestName}
  • php artisan module:make:service {alias} {ServiceClassName}
  • php artisan module:make:support {alias} {SupportClassName}
  • php artisan module:make:seeder {alias} {SeederClassName}
  • php artisan module:db:seed {alias}
  • php artisan module:db:seed {alias} --class={SeederClassName}
  • php artisan module:migrate {alias}
  • php artisan module:migrate:rollback {alias}
  • php artisan module:routes
  • php artisan module:install {alias}
  • php artisan module:uninstall {alias}
  • php artisan module:enable {alias}
  • php artisan module:disable {alias}

'alias' is your module's alias name. you can find module's alias name in module.json file of module directory, (*15)

You must install your module to activate, (*16)

php artisan module:install {alias}, (*17)

Loading Component

You have to load views, config and translation by following laravel package, (*18)

Loading View
view(module_alias::view_file)

you may load the module1 module's index.blade.php view like so:, (*19)

view('module1::index');
Loading Translation

you may load the module1 module's welcome line from the messages file like so:, (*20)

trans('module1::messages.welcome');
Loading Config File

you may load the module1 module's welcome line from the messages file like so:, (*21)

config('messages.welcome');, (*22)

You have to merge the configurations, use the mergeConfigFrom method within your ModuleServiceProvider provider's register method:, (*23)

public function register()
{
    $this->mergeConfigFrom(
        __DIR__.'/../../config/messages.php', 'messages'
    );
}
Register Middleware

You should create a MiddlewareServiceProvider provider to register your middleware dynamically., (*24)

```, (*25)

use Illuminate\Support\ServiceProvider;, (*26)

class MiddlewareServiceProvider extends ServiceProvider { /** * Register any application services. * * @return void */ public function register() { /** * @var Router $router */ $router = $this->app['router'];, (*27)

    $router->aliasMiddleware('middleware-shortname', MiddlewareClassName::class);
}

} ```, (*28)

You should register all of your module's custom provider in ModuleServiceProvider provider's register method instead application's config/app.php file., (*29)

Credit

WebEd, (*30)

The Versions

11/04 2018

dev-master

9999999-dev

Laravel Module Management

  Sources   Download

MIT

The Requires

 

by Avatar mrabbani

10/04 2018

v1.5.6

1.5.6.0

Laravel Module Management

  Sources   Download

MIT

The Requires

 

by Avatar mrabbani

26/09 2017

v1.5.5

1.5.5.0

Laravel Module Management

  Sources   Download

MIT

The Requires

 

by Avatar mrabbani

06/02 2017

v1.5.4

1.5.4.0

Laravel Module Management

  Sources   Download

MIT

The Requires

 

by Avatar mrabbani

03/02 2017

v1.4

1.4.0.0

Laravel Module Management

  Sources   Download

MIT

The Requires

 

by Avatar mrabbani

24/12 2016

v1.03

1.03.0.0

Laravel Module Management

  Sources   Download

MIT

The Requires

 

by Avatar mrabbani

04/12 2016

v1.02

1.02.0.0

Laravel Module Management

  Sources   Download

MIT

The Requires

 

by Avatar mrabbani

04/12 2016

v1.01

1.01.0.0

Laravel Module Management

  Sources   Download

The Requires

 

by Avatar mrabbani

04/12 2016

v1.0

1.0.0.0

Laravel Module Management

  Sources   Download

The Requires

 

by Avatar mrabbani