torann/modules

There is no license information available for the latest version (0.1.1) of this package.

Basic module implantation for Laravel

0.1.1 2018-02-21 15:26 UTC

README

Latest Stable Version Total Downloads

Basic module implantation for Laravel.

Installation

Composer

From the command line run:

$ composer require torann/modules

The Service Provider

Open up config/app.php and find the providers key.

'providers' => [

    \Torann\Modules\ModulesServiceProvider::class,

]

Publish the configurations

Run this on the command line from the root of your project:

artisan vendor:publish --provider="Torann\Modules\ModulesServiceProvider"

The configuration file is stored in /config/modules.php file and is documented inline. Please note this step is required, when adding a new module it updates this file with it's settings. Along with the configuration file, the sample stubs files are published to the /resources/stubs/modules directory. These are used to generate new modules.

Integrating

To support database factories and seeders, along with routing you will need to do a few more things:

Routing

In /app/Providers/RouteServiceProvider.php at the end of map function add

modules()->loadRoutes($this->app['router'], 'api');
modules()->loadRoutes($this->app['router'], 'web');

Database

Seeding

In your default seeder /database/seeds/DatabaseSeeder at this to the end of run method add:

modules()->seed($this);
Factories

In /database/factories/UserFactory.php (or /database/factories/ModelFactory.php) add at the end of file:

modules()->loadFactories($factory);

Commands

module:make

This command creates new modules. You can create one module or multiple modules at once.

Example usage:

artisan module:make products orders

module:files

Allow to create files in module that already exists.

Example usage:

artisan module:make products camera radio

module:migration

Creates migration file in given module

Example usage:

artisan module:migration products create_products_table

You can also use optional --type and --table options to set table and type of migration in order to create migration with template for given type, for example:

artisan module:migration products create_camera_table --table=cameras --type=create

This will create migration that is of type create - so in up method there will be creating cameras table and in down method deleting cameras table

If the application supports multi-tenancy, the --tenant option can be used to store migration file in the tenant subdirectory of the module migration directory.

module:cache

Create a module cache file for faster module registration.

Example usage:

artisan module:cache

module:clear

Remove the module cache file.

Example usage:

artisan module:clear