Modules
, (*1)
Basic module implantation for Laravel., (*2)
Installation
Composer
From the command line run:, (*3)
$ composer require torann/modules
The Service Provider
Open up config/app.php
and find the providers
key., (*4)
'providers' => [
\Torann\Modules\ModulesServiceProvider::class,
]
Publish the configurations
Run this on the command line from the root of your project:, (*5)
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., (*6)
Integrating
To support database factories and seeders, along with routing you will need to do a few more things:, (*7)
Routing
In /app/Providers/RouteServiceProvider.php
at the end of map
function add, (*8)
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:, (*9)
modules()->seed($this);
Factories
In /database/factories/UserFactory.php
(or /database/factories/ModelFactory.php
) add at the end of file:, (*10)
modules()->loadFactories($factory);
Commands
module:make
This command creates new modules. You can create one module or multiple modules at once., (*11)
Example usage:, (*12)
artisan module:make products orders
module:files
Allow to create files in module that already exists., (*13)
Example usage:, (*14)
artisan module:make products camera radio
module:migration
Creates migration file in given module, (*15)
Example usage:, (*16)
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:, (*17)
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, (*18)
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., (*19)
module:cache
Create a module cache file for faster module registration., (*20)
Example usage:, (*21)
artisan module:cache
module:clear
Remove the module cache file., (*22)
Example usage:, (*23)
artisan module:clear