hariadi/laravel-boilerplate-generator

为 Laravel Boilerplate 生成模型、属性、关系、作用域特质和仓库

v2.0.0 2020-07-02 07:01 UTC

README

Build Status

通过控制台命令为 Laravel 5 Boilerplate 生成模型、属性、关系、作用域特质和仓库

安装

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

Laravel 5.7+

包已支持自动发现,可直接使用。

Laravel 5.4

将服务提供者注册到你的 config/app.php

Hariadi\Boilerplate\GeneratorCommandServiceProvider::class,

如果你想只为开发添加此库,可以将以下代码添加到你的 app/Providers/AppServiceProvider.php 文件中的 register() 方法

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

显示命令列表

php artisan list

你会看到

	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

用法

生成模型

选项

  • -N|--namespace : 类命名空间。输出策略将遵循此命名空间
php artisan app:model ModelName

Models 目录下生成 ModelName.php,并在 Models\ModelName\Traits 目录下生成 ModelNameAttributeModelNameRelationshipModelNameScope 特质。

生成属性

选项

  • -N|--namespace : 类命名空间。输出策略将遵循此命名空间
php artisan app:attribute ModelName

Models/Traits/Attribute 目录下生成 ModelNameAttribute.php

生成方法

选项

  • -N|--namespace : 类命名空间。输出策略将遵循此命名空间
php artisan app:method ModelName

Models/Traits/Method 目录下生成 ModelNameMethod.php

生成关系

选项

  • -N|--namespace : 类命名空间。输出策略将遵循此命名空间
php artisan app:relation ModelName

Models/Traits/Relationship 目录下生成 ModelNameRelationship.php

生成作用域

选项

  • -N|--namespace : 类命名空间。输出策略将遵循此命名空间
php artisan app:scope ModelName

Models/Traits/Scope 目录下生成 ModelNameScope.php

生成仓库

选项

  • -d|--disable-softdelete : 禁用软删除方法(forceDeleterestore
php artisan app:repository Backend/ModelName

app/Repositories/Event 目录下生成 ModelNameRepository.php

输出策略

没有 --namespace 选项

示例文件和目录输出

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

--namespace 选项

在给定的命名空间选项中生成组合。示例文件和目录输出

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

许可证

Laravel Boilerplate Generator 命令是开源软件,许可协议为 MIT 许可证