Generator

Installation

TABLE OF CONTENT
  1. Installing via Boilerplates (Fresh Laravel Projects)

  2. Installing into existing Laravel Projects

Installing via Boilerplate (Fresh Laravel Projects)

If you are starting a fresh new project with laravel then it can be the best option for you. You can skip all these steps and directly clone available boilerplate with all packages installed.

You can find boilerplate here: AdminLTE Templates, CoreUI Templates, Stisla Templates

You can find complete steps here.

Installing into existing Laravel Projects

If you have any existing project then you can continue with following steps.

Add Packages

Check the following table for Laravel version compatibility,

Laravel Version infyomlabs/laravel-generator laravelcollective/html infyomlabs/adminlte-templates
6.0 ^1.0 ^6.0 ^3.0
7.0 ^2.0 ^6.1 ^3.0
8.0 ^3.0 ^6.2 ^3.0

Add following packages into composer.json while using it with Laravel 6.

"require": { "infyomlabs/laravel-generator": "^1.0", "laravelcollective/html": "^6.0", "infyomlabs/adminlte-templates": "^3.0" }

If you want to use CoreUI then install coreui-templates instead of adminlte-templates

If you want to use Generate from Table option, you need to install,

"require": { "doctrine/dbal": "~2.3" }

Composer Update

After adding packages, run the following command:

composer update

Add Aliases

Add following alias to aliases array in config/app.php

'Form' => Collective\Html\FormFacade::class, 'Html' => Collective\Html\HtmlFacade::class, 'Flash' => Laracasts\Flash\Flash::class,

Publish Vendor

Run the following command:

php artisan vendor:publish

Update API Routes

Open app\Providers\RouteServiceProvider.php and update mapApiRoutes method as following:

Route::prefix('api/v1') ->middleware('api') ->as('api.') ->namespace($this->namespace."\\API") ->group(base_path('routes/api.php'));

We have added as prefix to separate out named routes of api and web. Also its a better way to store api controllers in separate directory with separate namespace. so we have added "\\API" suffix in namespace.

Customize Configuration (optional)

If you have tweaked any paths or laravel settings like custom namespace, rather than regular laravel installation, check out this page and configure the generator based on your settings

Publish

Publish generator stuff:

php artisan infyom:publish

By publishing API stuff, it will create following files:

|- app - app directory |- Http - Http directory |- Controllers - Controllers directory |- AppBaseController.php - New base controller which will be used as a base class for each controller |- Repositories - Repositories directory |- BaseRepository.php - BaseRepository for all repository files |- tests - tests directory |- ApiTestTrait.php - Api test trait to be used for testing |- Traits - directory to store created traits of models |- APIs - directory to store APIs tested cases |- Repositories - directory to store Repository tested cases

Recommended: If you have a fresh new laravel application and want a basic admin panel layout with adminlte admin panel, then you can use Publish Layout Command.

Now we are all set to get started with the generator.