zebrainsteam/laravel-generator-package

dev-main 2021-09-28 14:27 UTC

This package is not auto-updated.

Last update: 2024-09-26 06:21:23 UTC


README

Scrutinizer Code Quality Code Coverage Build Status Code Intelligence Status

Laravel生成器包 - Laravel的包生成器

该包的主要任务是在Laravel框架开发中自动化生成解决业务问题的代码

  • 迁移
  • (可选) 种子 (+factories)
  • 模型
  • CRUD界面(无视图,可自行用于其他场景)
  • (可选) Laravel Admin的界面和路由
  • (可选) 基础API和路由用于数据操作
  • (可选) API用于传输表单架构和过滤器以自动化前端和路由
  • (可选) 基础测试

与其他Laravel生成器相比,此包

  • 将代码打包成独立的composer包。
  • 实现自定义字段。

工作计划

  1. 安装Zebrainsteam/laravel-generator-package包
  2. 配置包的配置文件,指定计划包的结构和数据。
  3. 运行生成器,输出生成好的包,分别归类,准备发布和使用。

安装 - 安装

composer require Zebrainsteam/laravel-generator-package

配置文件

php artisan vendor:publish --force --provider="Zebrainsteam\LaravelGeneratorPackage\ServiceProvider" --tag="config"

将ServiceProvider添加到config/app.php中的'providers'部分

Zebrainsteam\LaravelGeneratorPackage\ServiceProvider::class,

添加词典迁移

php artisan migrate

添加标准词典

php artisan db:seed --class="Zebrainsteam\LaravelGeneratorPackage\DataBase\Seeders\DatabaseSeeder"

从配置中构建包

所有包

php artisan lgp:make

具有特定vendor的包

php artisan lgp:make vendor_name

特定包

php artisan lgp:make vendor_name/package_name

配置文件设置

fields - 指令接受一个数组,该数组包含包中可用的字段类(Fields)。它将替换标准集合。

您可以通过实现FieldInterface接口或继承抽象类FieldAbstract来实现自己的字段。

示例
    'fields' => [
        'text' => TextField::class,
        'string' => StringField::class,
        'integer' => IntegerField::class,
        'float' => FloatField::class,
    ],

generator - 多维数组,数组元素 - 生成单个包的配置。

name - 要生成的包的名称

description - 要生成的包的描述

vendor - 要生成的包的vendor(GIT账户)

package - 要生成的包的package(GIT账户的存储库)

model - 要生成的包中的模型名称

table - 要生成的包中模型关联的数据库表名称

generator - 允许禁用测试(tests)、种子(seeds)、API通用(api)、用于前端自动化的API(api_frontend)和Laravel Admin中用于包工作的组件(laravel_admin)的生成

form - 生成添加/编辑记录的表单的方案。最终元素是字段名称。

filter - 生成过滤器表单的方案。最终元素是字段名称。

fields - 多维数组。键是数据库表中字段的名字。有关字段配置的详细信息,请参阅以下内容。

示例

    'generator' => [
        [
            'name' => 'Name package',
            'description' => 'Description package',
            'vendor' => 'Zebrainsteam',
            'package' => 'test',
            'model' => 'test',
            'table' => 'test',
            'generator' => [
                'tests' => true,
                'seed' => true,
                'api' => true,
                'api_frontend' => true,
                'laravel_admin' => true,
            ],
            'fields' => [
                'title' => [
                    НАСТРОЙКИ ПОЛЯ title
                ]
            ],
            'form' => [
                [
                    'title',
                ],
            ],
            'filter' => [
                [
                    'title',
                ],
            ]
        ]
    ]

填充单个字段的设置

name_field_in_db - 数据库表中字段的唯一名称

field - 从指令'fields'中使用的可用字段的键。

label - 字段使用的名称/标题。

placeholder - 用于HTML的占位符。

default - 字段的默认值。

index - 如果设置为true,将为列创建索引。

fillable - 将字段添加到创建的模型的fillable数组中。

hidden - 将字段添加到创建的模型的hidden数组中以隐藏。

references - 接受4个参数以创建与另一个表中模型的关联。has - 关联类型,model - 与创建关联的模型路径及其名称,table - 创建关联的表名称,field - 与创建关联的字段名称。

param - 可选字段,默认值为 null。用于传递参数以生成某些 field(例如用于 select 表单的字典数组或数据库中的字典标识符)。

filter - 接受参数,帮助在模型操作中过滤和创建检查

filter['nullable'] - 允许在单元格中记录 NULL 值

filter['unique'] - 字段只能接受唯一值

filter['required'] - 字段为必填项

filter['max'] - 记录到数据库中的值最大长度

filter['min'] - 记录到数据库中的值最小长度

filter['mask'] - 用于检查值是否符合期望值的掩码。

'name_field_in_db' => [
    'field' => 'text',
    'label' => 'Title',
    'placeholder' => 'Enter label',
    'default' => null,
    'index' => false,
    'fillable' => true,
    'hidden' => false,
    'references' => [
        'model' => 'App\Models\User',
        'table' => 'user',
        'field' => 'id',
        'has' => 'hasOne',
    ],
    'param' => false,
    'filter' => [
        'nullable' => true,
        'unique' => false,
        'required' => false,
        'max' => null,
        'min' => null,
        'mask' => null,
    ]
]