dev-lnk / laravel-code-builder
从表结构生成类和文件
v1.2
2024-08-27 10:03 UTC
Requires
- php: ^8.2
Requires (Dev)
- orchestra/testbench: ^9.0
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^11.0
Conflicts
- laravel/framework: <10.0
README
描述
你好,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