dev-lnk/laravel-code-builder

从表结构生成类和文件

v1.2 2024-08-27 10:03 UTC

This package is auto-updated.

Last update: 2024-09-27 10:25:17 UTC


README

Latest Stable Version Total Downloads tests License
Laravel required PHP required

描述

你好,Laravel 用户!此包允许您从 SQL 表的架构中生成代码。以下实体将被生成:

以下示例是从迁移创建的表中生成的

Schema::create('products', function (Blueprint $table) {
    $table->id();
    $table->string('title')->default('Default');
    $table->text('content');
    $table->foreignIdFor(User::class)
        ->nullable()
        ->constrained()
        ->nullOnDelete()
        ->cascadeOnUpdate();
    $table->smallInteger('sort_number')->default(0);
    $table->boolean('is_active')->default(0);
    $table->timestamps();
    $table->softDeletes();
});

此包是做什么用的?

此包允许您在编码时显著减少常规工作,并专注于开发。

安装

composer require dev-lnk/laravel-code-builder --dev

配置

发布包配置文件

php artisan vendor:publish --tag=laravel-code-builder

用法

基本命令签名如下所示

code:build {entity} {table?}

假设我们想要根据 User 实体创建 users 基表类。为此,您需要运行以下命令

php artisan code:build User

您将看到您的表列表,选择您想要根据其生成代码的表

 ┌ Table ───────────────────────────────────────────────────────┐
 │   ○ migrations                                             │ │
 │   ○ password_reset_tokens                                  │ │
 │   ○ products                                               │ │
 │   ○ sessions                                               │ │
 │ › ● users                                                  ┃ │
 └──────────────────────────────────────────────────────────────┘

您也可以指定表名的部分以缩短列表

php artisan code:build User us
 ┌ Table ───────────────────────────────────────────────────────┐
 │ › ● users                                                    │
 └──────────────────────────────────────────────────────────────┘

如果您在配置文件中未指定 generation_path,您将得到两个选项

 ┌ Where to generate the result? ───────────────────────────────┐
 │ › ● In the project directories                               │
 │   ○ To the generation folder: `app/Generation`               │
 └──────────────────────────────────────────────────────────────┘

第一个选项将根据您的 app_path 目录中的文件夹创建所有文件。如果发现同名文件,您将被提示替换它

app/Models/User.php was created successfully!
...
 ┌ Controller already exists, are you sure you want to replace it? ┐
 │ Yes                                                             │
 └─────────────────────────────────────────────────────────────────┘

app/Http/Controllers/UserController.php was created successfully!
...

第二个选项是在 app/Generation 文件夹中生成所有文件

app/Generation/Models/User.php was created successfully!
...

builders 配置中,您可以注释掉那些不想执行的构建器

return [
    'builders' => [
        'model',
//        'addAction',
//        'editAction',
//        'request',
//        'controller',
//        'route',
        'form',
//        'DTO',
//        'table',
    ],
    //...
];

您可以使用标志生成某些实体

php artisan code:build user --model --request

唯一标志的可用选项

  • --model
  • --request
  • --DTO
  • --addAction
  • --editAction
  • --controller
  • --route
  • --form
  • --table
  • --typeScript
  • --builder - 根据配置中的 builders 和您指定的标志生成所有构建器,例如
php artisan code:build user --builders --request

文档