ThinkPHP 6.0 使用 php think make: 系列命令生成类文件,需先安装 think-helper(TP6.0.x)或确认内置支持(TP6.1+),命令须在根目录执行,类名不加后缀,生成后需手动补全业务逻辑、配置及初始化。

ThinkPHP 6.0 使用命令行创建类,核心是通过 php think make: 系列命令自动生成标准结构的文件,省去手动写命名空间、类名、继承关系等重复工作。前提是命令可用、路径规范、命名合规。
确认命令支持并安装扩展
TP6.0 默认不带 make:controller、make:model 等开发命令:
- 若执行
php think make:controller Index报错 “Command not defined”,说明缺少think-helper - 运行
composer require topthink/think-helper安装(适用于 TP6.0.x) - TP6.1+ 通常已内置,但仍需检查
config/console.php中commands数组是否包含think\command\MakeController等类
常用 make 命令及正确用法
所有 make: 命令必须在项目根目录执行,且类名/路径名直接影响生成位置和命名空间:
-
控制器:
php think make:controller api/User→ 生成app/controller/api/User.php,类名为User,命名空间为app\controller\api -
模型:
php think make:model User→ 生成app/model/User.php,类名User,命名空间app\model -
自定义命令:
php think make:command BackupDb→ 生成app/command/BackupDbCommand.php,类名BackupDbCommand,命名空间app\command -
验证器:
php think make:validate UserValidate→ 生成app/validate/UserValidate.php -
中间件:
php think make:middleware Cors→ 生成app/middleware/Cors.php
⚠️ 注意:不要加 Controller 或 Model 后缀——php think make:controller UserController 会生成 UserControllerController 类,导致错误。
立即学习“PHP免费学习笔记(深入)”;
生成后需要手动确认的关键点
命令只生成骨架,业务逻辑和依赖需人工补全:
- 控制器中,API 类建议继承
think\Controller;Web 页面类可保留return view(),但模板路径要与方法名匹配(如index()对应app/view/index.html) - 模型类需手动配置表名(
protected $name = 'user';)、主键(protected $pk = 'id';)及关联关系 - 自定义命令类的
execute()方法内,若要用Db或模型,开头必须加$this->app->initialize();,否则报 “No application initialized” - 所有方法必须声明为
public,否则无法被路由或命令调度调用
查看和调试命令列表
随时掌握当前可用命令:
-
php think list—— 列出所有已注册命令(含自定义命令) -
php think help make:controller—— 查看具体命令参数和选项 - 自定义命令未出现在
list中?检查:
– 是否放在app/command/目录下
– 类名是否以Command结尾
–configure()中是否调用了$this->setName('xxx:yyy')(仅小写字母、数字、冒号、下划线)



















