Modules for API's RESTFul based on laravel 5.*
SOLID principles..., (*1)
Install
composer require pablolovera/modules-laravel-api
Add ServiceProvider on config/app.php
PabloLovera\ModulesLaravel\Providers\ModulesServiceProvider::class,
Add the Facade in aliases array
For OAuth2, (*2)
'Authorizer' => LucaDegasperi\OAuth2Server\Facades\Authorizer::class,
For Fractal, (*3)
'Fractal' => Cyvelnet\Laravel5Fractal\Facades\Fractal::class
Publish config
php artisan vendor:publish --provider="PabloLovera\ModulesLaravel\Providers\ModulesServiceProvider"
How to use...
First step (IMPORTANT)
Create the Core module. It's very important!, (*4)
php artisan module:make-core
Then... see the directory app/Core/, (*5)
Create the other modules...
php artisan make:module <module-name>
Then... see the directory app/Modules/<module-name>, (*6)
When a new module is created, you need add provider in config/app.php, like a App\Modules\<module-name>\Providers\<module-name>ServiceProvider::class,, (*7)
Commands available
php artisan ..., (*8)
Create Module
make:module <module-name>
Create Controller for existing module
module:make-controller <controller-name> <module-name>
So... created in app/Modules/<module-name>/Http/Controllers/<controller-name>, (*9)
Create Entity for existing module
module:make-entity <entity-name> <module-name>
So... created in app/Modules/<module-name>/Entities/<entity-name>, (*10)
Create Entity Contract for existing module
module:make-entity-contract <entity-contract-name> <module-name>
So... created in app/Modules/<module-name>/Contracts/Entities/<entity-contract-name>, (*11)
Create Repository for existing module
module:make-repository <repository-name> <module-name>
So... created in app/Modules/<module-name>/Repositories/<repository-name>, (*12)
Create Repository Contract for existing module
module:make-repository-contract <repository-contract-name> <module-name>
So... created in app/Modules/<module-name>/Contracts/Repositories/<repository-contract-name>, (*13)
Create Service for existing module
module:make-service <service-name> <module-name>
So... created in app/Modules/<module-name>/Services/<service-name>, (*14)
Create Service Contract for existing module
module:make-service-contract <service-contract-name> <module-name>
So... created in app/Modules/<module-name>/Contracts/Services/<service-contract-name>, (*15)
Create Request for existing module
module:make-request <request-name> <module-name>
So... created in app/Modules/<module-name>/Http/Requests/<request-name>, (*16)
Create Seeder for existing module
module:make-seeder <seeder-name> <module-name>
So... created in app/Modules/<module-name>/Database/seeds/<seeder-name>, (*17)
Create Migration for existing module
module:make-migration <migration-name> <module-name>
So... created in app/Modules/<module-name>/Database/migrations/<migration-name>, (*18)
Executing Migration for existing module
module:migrate <module-name>
or, (*19)
module:migrate <module-name> --seed
Create Service Provider for existing module
module:make-service-provider <service-provider-name> <module-name>
So... created in app/Modules/<module-name>/Providers/<service-provider-name>, (*20)
module:make-transformer <transformer-name> <module-name>
So... created in app/Modules/<module-name>/Transformers/<transformer-name>, (*21)
The following packages are also used
lucadegasperi/oauth2-server-laravel
Cyvelnet/laravel5-fractal, (*22)
Licence
MIT Licence, (*23)