zebrainsteam/ laravel-generator-package
生成Laravel的Composer包
Requires (Dev)
- facade/ignition: ^2.3.6
- laravel/framework: ^8.0
- mockery/mockery: >=1.3
- orchestra/testbench: ^6.0
- phpunit/php-code-coverage: ^7.0
- phpunit/phpunit: ^8.5
This package is not auto-updated.
Last update: 2024-09-26 06:21:23 UTC
README
Laravel生成器包 - Laravel的包生成器
该包的主要任务是在Laravel框架开发中自动化生成解决业务问题的代码
- 迁移
- (可选) 种子 (+factories)
- 模型
- CRUD界面(无视图,可自行用于其他场景)
- (可选) Laravel Admin的界面和路由
- (可选) 基础API和路由用于数据操作
- (可选) API用于传输表单架构和过滤器以自动化前端和路由
- (可选) 基础测试
与其他Laravel生成器相比,此包
- 将代码打包成独立的composer包。
- 实现自定义字段。
工作计划
- 安装Zebrainsteam/laravel-generator-package包
- 配置包的配置文件,指定计划包的结构和数据。
- 运行生成器,输出生成好的包,分别归类,准备发布和使用。
安装 - 安装
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,
]
]