Skip to content

Generate Model, attribute, relation, scope trait and repository for Laravel Boilerplate

Notifications You must be signed in to change notification settings

hariadi/laravel-boilerplate-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel Boilerplate Generator Commands

Build Status

Generate Model, attribute, relation, scope trait and repository for Laravel 5 Boilerplate via console command

Install

composer require --dev hariadi/laravel-boilerplate-generator

Laravel 5.7+

Package already support auto discover and ready to use.

Laravel 5.4

Register service provider by adding to your config/app.php:

Hariadi\Boilerplate\GeneratorCommandServiceProvider::class,

If you want this lib only for dev, you can add the following code to your app/Providers/AppServiceProvider.php file, within the register() method:

public function register()
{
    if ($this->app->environment() !== 'production') {
        $this->app->register(\Hariadi\Boilerplate\GeneratorCommandServiceProvider::class);
    }
    // ...
}

Show command list:

php artisan list

You will see:

	app
	  app:attribute        Create a new attribute traits for model
	  app:method           Create a new method traits for model
	  app:model            Create a new Eloquent model class with attribute, relationship and scope traits
	  app:relationship     Create a new relationship traits for model
	  app:repository       Create a new repository class
	  app:scope            Create a new scope traits for model

Usage

Generate Model

Options

  • -N|--namespace : The namespace class. Output strategy will follow this namespace
php artisan app:model ModelName

Generate ModelName.php under Models directory, and traits for ModelNameAttribute, ModelNameRelationship, ModelNameScope under Models\ModelName\Traits directory.

Generate Attribute

Options

  • -N|--namespace : The namespace class. Output strategy will follow this namespace
php artisan app:attribute ModelName

Generate ModelNameAttribute.php under Models/Traits/Attribute directory.

Generate Method

Options

  • -N|--namespace : The namespace class. Output strategy will follow this namespace
php artisan app:method ModelName

Generate ModelNameMethod.php under Models/Traits/Method directory.

Generate Relation

Options

  • -N|--namespace : The namespace class. Output strategy will follow this namespace
php artisan app:relation ModelName

Generate ModelNameRelationship.php under Models/Traits/Relationship directory.

Generate Scope

Options

  • -N|--namespace : The namespace class. Output strategy will follow this namespace
php artisan app:scope ModelName

Generate ModelNameScope.php under Models/Traits/Scope directory.

Generate Repository

Options

  • -d|--disable-softdelete : Disable softdelete method (forceDelete and restore)
php artisan app:repository Backend/ModelName

Generate ModelNameRepository.php under app/Repositories/Event directory.

Output strategy

Without --namespace option

Example files and directories output:

php artisan app:model ModelName
php artisan app:model AnotherModelName
app/Models
├── AnotherModelName
│   ├── AnotherModelName.php
│   └── Traits
│       ├── Attribute
│       │   └── AnotherModelNameAttribute.php
│       ├── Method
│       │   └── AnotherModelNameMethod.php
│       ├── Relationship
│       │   └── AnotherModelNameRelationship.php
│       └── Scope
│           └──AnotherModelNameScope.php
└── ModelName
    ├── ModelName.php
    └── Traits
        ├── Attribute
        │   └── ModelNameAttribute.php
        ├── Method
        │   └── ModelNameMethod.php
        ├── Relationship
        │   └── ModelNameRelationship.php
        └── Scope
            └── ModelNameScope.php

With --namespace option

Generated combined in given namspace option. Example files and directories output:

php artisan app:model ModelName --namespace=Survey
php artisan app:model AnotherModelName --namespace=Survey
app/Models
└── Survey
    ├── ModelName.php
    ├── AnotherModelName.php
    └── Traits
        ├── Attribute
        │   ├── ModelNameAttribute.php
        │   └── AnotherModelNameAttribute.php
        ├── Method
        │   ├── ModelNameMethod.php
        │   └── AnotherModelNameMethod.php
        ├── Relationship
        │   ├── ModelNameRelationship.php
        │   └── AnotherModelNameRelationship.php
        └── Scope
            ├── ModelNameScope.php
            └── AnotherModelNameScope.php

License

The Laravel Boilerplate Generator command is open-sourced software licensed under the MIT license