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

安装

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

sh 复制代码
composer global require laravel/installer

创建Laravel应用

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

sh 复制代码
laravel new example-app

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

sh 复制代码
cd example-app
npm install && npm run build
composer run dev

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

sh 复制代码
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/...

文档地址:generator.pp-lang.tech/

安装Laravel Generator

通过 Composer 进行安装

sh 复制代码
composer require --dev foryoufeng/laravel-generator

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

sh 复制代码
php artisan generator:install

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

UI界面

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

配置

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

配置文件

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

sh 复制代码
php artisan vendor:publish --tag=laravel-generator

laravel-generator.php 文件说明

sh 复制代码
<?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界面

说明

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

迁移

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

UI界面

说明

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

模板

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

UI界面

说明

列表说明:

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

模板字段说明:

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

模板示例

php 复制代码
<?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代码所有的功能,感谢看到这里,希望您使用愉快

相关推荐
多厘1 天前
别再手写 psr-4 了!用 Composer 隐藏魔法干掉上千行烂配置
laravel
JaguarJack2 天前
FrankenPHP 原生支持 Windows 了
后端·php·服务端
BingoGo2 天前
FrankenPHP 原生支持 Windows 了
后端·php
JaguarJack3 天前
PHP 的异步编程 该怎么选择
后端·php·服务端
BingoGo3 天前
PHP 的异步编程 该怎么选择
后端·php
JaguarJack4 天前
为什么 PHP 闭包要加 static?
后端·php·服务端
ServBay5 天前
垃圾堆里编码?真的不要怪 PHP 不行
后端·php
用户962377954485 天前
CTF 伪协议
php
BingoGo7 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack7 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端