Laravel Modular Structure
Documentation
, (*1)
Installation
The best way to install this package is through your terminal via Composer., (*2)
Add the following line to the composer.json file and fire composer update, (*3)
"hsameerc/laravel-modular-structure": "dev-master"
Once this operation is complete, simply add the service provider to your project's config/app.php, (*4)
Service Provider
Hsameerc\LaravelModularStructure\ModuleServiceProvider::class,
, (*5)
Getting started
The built in Artisan command php artisan make:module name [--migration] [--translation] generates a ready to use module in the app/Modules folder and a migration if necessary., (*6)
You can generate modules named with more than one word, like foo-bar., (*7)
This is how the generated module would look like:, (*8)
laravel-project/
    app/
    |-- Modules/
        |-- FooBar/
            |-- Controllers/
                |-- FooBarController.php
            |-- Models/
                |-- FooBar.php
            |-- Views/
                |-- index.blade.php
            |-- Translations/
                |-- en/
                    |-- example.php
            |-- Requests/
                |-- FooBarRequest.php
            |-- routes.php
            |-- helper.php
, (*9)
Usage
The generated RESTful Resource Controller and the corresponding routes.php make it easy to dive in. In my example you would see the output from the Modules/FooBar/Views/index.blade.php when you open laravel-project:8000/foo-bar in your browser., (*10)
Disable modules
In case you want to disable one ore more modules, you can add a modules.php into your projects app/config folder. This file should return an array with the module names that should be loaded.
F.a:, (*11)
return [
    'enable' => array(
        "customer",
        "jobs",
        "reporting",
    ),
];
In this case LaravelModularStructure would only load this three modules customer jobs reporting. Every other module in the app/Modules folder would not be loaded., (*12)
Laravel Modular Structure will load all modules if there is no modules.php file in the config folder., (*13)
You have to follow the upper camel case name convention for the module folder. If you had a Modules/foo folder you have to rename it to Modules/Foo., (*14)
Also there are changes in the app/config/modules.php file. Now you have to return an array with the key enable instead of list., (*15)
License
Laravel Modular Structure is licensed under the terms of the MIT License
(See LICENSE file for details)., (*16)