Files
rxthinkcmf-wiki/RXThinkCMF_ThinkPhp6_EleVue/zh/generator/cli.md
T
2026-09-29 09:49:04 +08:00

137 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 10.2 CLI 命令行使用
:::tip 概述
代码生成器提供 CLI 命令行方式,适合批量生成或 CI/CD 集成场景。
:::
## 命令格式
```bash
# =============================================================================
# 代码生成器 CLI 命令
# =============================================================================
# php think generate:code → ThinkPHP 命令行调用代码生成器
# <表名> → 数据库表名(不含表前缀)
# |<注释> → 可选,用 | 分隔表注释(用于生成菜单标题)
# =============================================================================
php think generate:code <表名>[|注释]
```
## 参数说明
| 参数 | 必填 | 说明 | 示例 |
|------|------|------|------|
| `table`(参数) | 否 | 数据库表名,多表用逗号分隔(需配合 `--batch`) | `think_example` 或 `think_example\|案例演示` |
| `--config` / `-c` | 否 | 指定已有的 JSON 配置文件路径,跳过表解析 | `--config config.json` |
| `--output` / `-o` | 否 | 将配置导出为 JSON 文件 | `--output config.json` |
| `--dry-run` / `-d` | 否 | 仅预览,不写入代码文件 | `--dry-run` |
| `--type` / `-t` | 否 | 模板类型:`ui`(默认)或 `ui2` | `--type ui2` |
| `--overwrite` / `-w` | 否 | 覆盖已存在的文件 | `--overwrite` |
| `--no-menu` | 否 | 不生成菜单 | `--no-menu` |
| `--batch` / `-b` | 否 | 批量模式,table 参数支持逗号分隔多表 | `--batch` |
## 使用示例
```bash
# -----------------------------------------------------------------------------
# 列出所有可生成的数据库表
# -----------------------------------------------------------------------------
php think generate:code
# -----------------------------------------------------------------------------
# 预览生成代码(不写入文件,仅输出到终端)
# -----------------------------------------------------------------------------
php think generate:code think_example --dry-run
# -----------------------------------------------------------------------------
# 生成案例演示模块(带表注释)
# -----------------------------------------------------------------------------
php think generate:code think_example|案例演示
# -----------------------------------------------------------------------------
# 生成文章管理模块(覆盖已有文件)
# -----------------------------------------------------------------------------
php think generate:code think_article|文章管理 --overwrite
# -----------------------------------------------------------------------------
# 生成用户管理模块(使用 ui2 树形模板)
# -----------------------------------------------------------------------------
php think generate:code think_user|用户管理 --type ui2
# -----------------------------------------------------------------------------
# 批量生成多张表
# -----------------------------------------------------------------------------
php think generate:code think_order,think_product,think_category --batch
# -----------------------------------------------------------------------------
# 导出配置为 JSON 文件
# -----------------------------------------------------------------------------
php think generate:code think_example --output config.json
# -----------------------------------------------------------------------------
# 从配置文件生成(跳过表解析)
# -----------------------------------------------------------------------------
php think generate:code --config config.json
```
## 生成的文件
执行命令后,自动生成以下文件:
```text
app/controller/ExampleController.php # 控制器(定义 API 接口方法)
app/logic/ExampleLogic.php # 业务逻辑(继承 BaseLogic 获得 CRUD)
app/model/Example.php # 数据模型(继承 BaseModel 获得软删除/时间戳)
app/validate/ExampleValidate.php # 验证器(字段验证规则)
ui/src/api/tool/example.ts # 前端 API 接口定义
ui/src/views/tool/example/index.vue # 列表页(分页表格 + 搜索)
ui/src/views/tool/example/edit.vue # 编辑弹窗(新增/编辑表单)
ui/src/views/tool/example/detail.vue # 详情弹窗(只读展示)
ui/src/views/tool/example/columns.ts # 表格列配置(仅 ui/ 模板)
ui/src/views/tool/example/querySchemas.ts # 查询表单配置(仅 ui/ 模板)
```
## 生成后操作
生成完成后,路由、菜单、字典均已自动创建。通常只需:
```bash
# -----------------------------------------------------------------------------
# 第 1 步:检查生成的文件是否正确
# -----------------------------------------------------------------------------
ls app/controller/Example* # 控制器
ls app/logic/Example* # 业务逻辑
ls app/model/Example* # 数据模型
ls app/validate/Example* # 验证器
ls ui/src/api/tool/example* # 前端 API
ls ui/src/views/tool/example/ # 前端页面
# -----------------------------------------------------------------------------
# 第 2 步:根据业务需求调整 Logic 属性配置
# -----------------------------------------------------------------------------
# 可调整:pageLikeFields、pageEqFields、serializeMaps 等
# -----------------------------------------------------------------------------
# 第 3 步:在菜单管理中调整菜单排序和图标
# -----------------------------------------------------------------------------
```
## 与 Web 界面对比
| 特性 | CLI 命令 | Web 界面 |
|------|----------|----------|
| 使用方式 | 命令行 | 浏览器 |
| 适用场景 | 批量生成、CI/CD、自动化 | 单表生成、可视化配置 |
| 预览功能 | 支持(`--dry-run`) | 支持预览 |
| 批量生成 | 支持(`--batch` 原生支持) | 支持(多选表) |
| 树形结构 | 支持(`--type ui2`) | 自动检测 parent_id 字段 |
| 覆盖文件 | 支持(`--overwrite`) | 支持 |
| 跳过菜单 | 支持(`--no-menu`) | 不支持 |
| 导出配置 | 支持(`--output`) | 不支持 |
| 从配置生成 | 支持(`--config`) | 不支持 |
| 权限限制 | 不受限制 | 受权限和演示模式限制 |
:::tip 推荐
日常开发推荐使用 Web 界面(可视化配置更方便),批量生成或自动化场景使用 CLI 命令。
:::