tp5本身已经支持多模块儿
本博客讲述的是 在application同级建立多应用
tp5官网摘要:
应用类库命名空间规范
应用类库的根命名空间统一为app(不建议更改,可以设置app_namespace
配置参数更改,V5.0.8
版本开始使用APP_NAMESPACE
常量定义);
例如:app\index\controller\Index
和app\index\model\User
。
一、在public文件夹下创建mobile.php
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
//定义根命名空间
define('APP_NAMESPACE','mobile');
// [ 应用入口文件 ]
// 定义应用目录
define('APP_PATH', __DIR__ . '/../mobile/');
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';
相较于public下index.php,这里修改了默认的根命名空间(app),并修改了应用目录
二、修改psr-4自动加载
参考:https://www.cnblogs.com/wangmy/p/6692970.html
修改composer.json
修改前:
"autoload": {
"psr-4": {
"app\\": "application"
}
}
修改后:
"autoload": {
"psr-4": {
"app\\": "application",
"mobile\\":"mobile"
}
}
注意:之后新建的类库的根命名空间为mobile
例如:mobile应用下的 index模块儿下的 Index控制器
<?php
namespace mobile\index\controller;
class Index {
public function index() {
return 123;
}
}