torann / modules
Basic module implantation for Laravel
Requires
- php: >=5.6
- illuminate/support: ~5.3
Requires (Dev)
- mockery/mockery: ^0.9.4
- phpunit/phpunit: ^4.8
This package is auto-updated.
Last update: 2024-10-08 10:30:37 UTC
README
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