ThinkPHP 5.1+ 已废弃 make:module 命令,因其转向多应用模式;应使用 php think build --module xxx(需先配置 build.php)或手动创建应用目录并启用 'app_multi' => true。
ThinkPHP 的命令本身不支持直接创建模块(Module)——这是 ThinkPHP 5.1+ 版本中被移除的功能,强行执行会报错或静默失败。
为什么
找不到命令?
ThinkPHP 5.1 起全面转向「多应用模式」(
目录下是应用,不是传统意义上的模块),官方废弃了
命令。如果你在文档或旧教程里看到它,大概率对应的是 ThinkPHP 5.0 或更早版本,或者第三方扩展包(如
等不提供该功能)。
运行
查看所有可用命令,确认没有
执行
会提示
即使手动创建
目录,若未配置多应用路由和入口,框架也不会自动识别为独立应用
想实现类似“模块”结构,该怎么做?
ThinkPHP 5.1+ 推荐用「多应用」替代传统模块。每个应用相当于一个独立项目,有自己完整的控制器、模型、路由和配置。
用
可生成基础应用骨架(需先在
中配置
)
更常用的是直接手动创建:在
下新建目录
,放入
、
、
等,并确保
中开启多应用:
访问时 URL 格式为
,而非
(后者是伪模块,已不推荐)
如果坚持用单应用 + 模块化目录结构怎么办?
可以模拟模块组织,但需自行管理命名空间和自动加载,框架不提供原生支持。
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
立即学习
“
PHP免费学习笔记(深入)
”;
在
下建
目录,把控制器放
手动注册命名空间:在
的
→
中添加
,然后运行
路由需显式绑定:
注意:这种方式绕过框架应用生命周期,中间件、Hook、配置隔离等都得自己补全
真正要区分业务域,优先走多应用;若只是代码分层,用目录+命名空间+路由绑定更可控。别在
命令里找不存在的
—— 它不在那里,也不该在那里。
thinkthink make:moduleappmake:moduletopthink/think-migrationphp think listmake:modulephp think make:module UserCommand "make:module" is not defined.app/user/php think build --module userbuild.php'user' => ['controller' => 'Index', 'model' => 'User', 'view' => 'index/index']app/user/controller/model/config.phpapp.php'app_multi' => true/user/index/index/index.php?s=user/index/indexapp/module/user/app/module/user/controller/UserController.phpcomposer.json"autoload""psr-4""app\module\user\": "app/module/user/"composer dump-autoloadRoute::get('user/profile', 'module\user\controller\UserController@profile');thinkmake:module