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

相关推荐
大G哥1 小时前
PHP标签+注释+html混写+变量
android·开发语言·前端·html·php
傻啦嘿哟1 小时前
HTTP代理基础:网络新手的入门指南
开发语言·php
BXCQ_xuan7 小时前
Typecho博客网站头部SEO优化完整指南
运维·服务器·数据库·php·web
人类群星闪耀时7 小时前
5G赋能远程医疗:从愿景到现实的技术变革
开发语言·5g·php
onejason8 小时前
利用 PHP 爬虫按关键字搜索 1688 商品详情:实战指南
前端·php
亿坊电商1 天前
PHP框架在微服务迁移中能发挥什么作用?
开发语言·微服务·php
帅云毅1 天前
Web漏洞--XSS之订单系统和Shell箱子
前端·笔记·web安全·php·xss
keep intensify1 天前
Linux常用指令
linux·服务器·php
ALex_zry1 天前
Docker Macvlan网络配置实战:解决“network already exists“错误
网络·docker·php