Laravel代码生成器,快速构建项目代码,统一团队编码风格

安装

若已安装 PHP 和 Composer,可通过 Composer 安装 Laravel 安装器:

composer global require laravel/installer

创建Laravel应用

安装 PHP、Composer 和 Laravel 安装器后,您即可创建新 Laravel 应用。Laravel 安装器将提示您选择偏好的测试框架、数据库及入门套件:

laravel new example-app

应用创建完成后,可使用 dev Composer 脚本启动 Laravel 本地开发服务器、队列工作进程及 Vite 开发服务器:

cd example-app
npm install && npm run build
composer run dev

开发服务器启动后,您的应用可在浏览器中通过 http://localhost:8000 访问。接下来可更新 .env 配置文件以使用相应数据库。例如,若使用 MySQL,可如此更新 .env 文件中的 DB_* 变量

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

Laravel Generator项目说明

项目地址:github.com/foryoufeng/laravel-gene...
文档地址:generator.pp-lang.tech/

安装Laravel Generator

通过 Composer 进行安装

composer require --dev foryoufeng/laravel-generator

运行如下命令来安装代码生成器

php artisan generator:install

现在你可以访问您的应用urlhttp://localhost:8000/laravel-generator 来使用Laravel Generator

UI界面

安装完成后,访问链接即可见到如下界面

Laravel

Laravel

配置

Laravel Generator灵活的配置允许您根据自己的需要进行相应的配置,下面来看看您可以如何进行配置

配置文件

安装完Laravel Generator后,您可以通过运行如下命令来获取配置文件,将会放到config/laravel-generator.php

php artisan vendor:publish --tag=laravel-generator

laravel-generator.php 文件说明

<?php

return [ // 项目的名称
 'name' => 'Laravel Generator', // 访问地址
 'route'=>'laravel-generator', // 定义规则
 'rules'=>[
     'string', 'email', 'file', 'numeric', 'array', 'alpha', 'alpha_dash', 'alpha_num', 'date', 'boolean', 'distinct', 'phone', 'custom' 
 ],  //设置标签
 'tags'=>[ 
     [
         'name'=>'Controller',
         'path'=>'app/Http/Controllers/Admin/', 
         'file'=>'DummyClassController.php',
         'type'=>'primary', 
     ], 
     [ 
         'name'=>'Test',
         'path'=>'tests/Unit',
         'file'=>'DummyClassTest.php',
         'type'=>'danger', 
     ],
     [ 
         'name'=>'Vue',
         'path'=>'resources/views/admin/DummySnakeClass/', 
         'file'=>'index.vue',
         'type'=>'warning', 
     ], 
     [ 
         'name'=>'Request', 
         'path'=>'app/Http/Requests/', 
         'file'=>'DummyClassRequest.php', 
         'type'=>'success', 
     ] 
 ], 
 //自定义参数
 'customDummys'=>[ 
     'DummyAuthor'=>env('GENERATOR_AUTHOR','system') ]
 ];

.env中配置GENERATOR_AUTHOR=你的名字,来进行创建人的配置

生成器

用于根据配置信息来快速生成模板文件,可以先保存文件,团队评审完毕后根据需求再进行文件的生成

UI界面

Laravel代码生成器,快速构建项目代码,统一团队编码风格

说明

  • Model名称:实际Model的名字,可以是User,Order等
  • 显示名称:模型代表的名称,如用户,订单等
  • Create migration:表示生成迁移文件,Run migrate:表示运行迁移文件, ide-helper::models 表示运行ide Model帮助函数
  • 下面列表展示的是模板需要生成的文件,文件名可以动态修改,DummyClass是占位的名字,根据实际输入的Model名称来动态变化
  • Table fields中的字段对应迁移文件中的各种字段的配置,以及能根据自定义配置规则进行字段的处理,具体字段调用会在模板中进行说明
  • 支持外键和关联关系的处理
  • 设置的数据可以先保存,或者直接保存并生产文件

迁移

用于表添加字段或者更新字段

UI界面

Laravel代码生成器,快速构建项目代码,统一团队编码风格

说明

  • prefix:迁移文件的前缀,可以是add或者是edit等
  • tableName:数据库中实际的表名,如:users,orders等
  • table fields:迁移文件中的字段

模板

用于设置生成文件的模板,理论上是可以生成任何您所需要的文件的,在安装时,系统已默认安装了一组模版文件

UI界面

Laravel代码生成器,快速构建项目代码,统一团队编码风格

说明

列表说明:

  • 路径:文件所生成的相对路径,以项目所在的目录为根路径
  • 是否选中:在生成器界面,文件是否默认自动勾选生成
  • 所属组:将文件进行分组,方便生成文件的管理
  • 编辑:可以对模板信息进行编辑

模板字段说明:

  • 基础字段:
    • DummyDisplayName:显示名称,如用户地址
    • DummyClass:类名称,如:UserAddress
    • DummyCamelClass:类的驼峰名,如:userAddress
    • DummySnakeClass:类小写,如user_address
    • DummyPluralClass:类的复数,如Users
    • DummySnakePluralClass:类小写复数,如users
    • DummyAuthor:作者
  • 模板渲染

模板示例

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
<%* soft delete *%>
<%if(DummyModelFields.soft_deletes){%>
use Illuminate\Database\Eloquent\SoftDeletes;
<%}%>

class DummyClass extends Model
{
 /** @use HasFactory<\Database\Factories\DummyClassFactory> */ use HasFactory;<%if(DummyModelFields.soft_deletes){%>
 use SoftDeletes;<%}%>
 protected $fillable = [<%for(item of DummyTableFields){%><%if('id'!=item.field_name) { %>'<%=item.field_name%>',<%}%><%}%>];
<%if(!DummyModelFields.timestamps){%>
 public $timestamps = false;<%}%>

<%for(relationship of DummyRelationShips){%>
 <%if('hasMany'==relationship.relationship) { %> public function <%=relationship.snake_plural_model%>(){ return $this->hasMany(<%=relationship.model%>::class<%if(relationship.foreign_key) { %>,'<%=relationship.foreign_key%>'<%}%>); }
 <%}else{%> public function <%=relationship.snake_model%>(){ return $this-><%=relationship.relationship%>(<%=relationship.model%>::class<%if(relationship.foreign_key) { %>,'<%=relationship.foreign_key%>'<%}%>); }
 <%}%><%}%>

}

好了,以上是Laravel Generator代码所有的功能,感谢看到这里,希望您使用愉快

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1

这个估计用处不大了,现在用AI一句话模型,控制器,接口全部生成了。

8小时前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!