thinkphp多模块
2016-07-14 阅读数:270

    thinkphp的默认模块是Home,在访问路径上同样会默认显示Home这个模块,thinkphp的配置文件提供了设置默认模块的参数

'MULTI_MODULE'          =>  true, // 是否允许多模块 如果为false 则必须设置 DEFAULT_MODULE
'MODULE_ALLOW_LIST'     =>  array('Home'),    // 允许访问的模块列表
'DEFAULT_MODULE'        =>  'Home',  // 默认模块

将对应的参数配置好,项目访问路径就会去掉Home这个模块关键字了。

    这样设置存在一个不足,那就是如果你的项目里面有多个模块,以上方法就只能设置一个默认模块,这样剩余的模块在访问路径上还是会多出一个模块关键字,解决方法是在各个模块的入口文件中绑定本模块的默认模块。

    例如现在你有两个模块需要配置,分别是Home和Index,对应的入口文件是home.php和index.php,配置如下

home.php:

// 应用入口文件
// 检测PHP环境
if (version_compare(PHP_VERSION, '5.3.0', '<'))
    die('require PHP > 5.3.0 !');
// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG', True);
// 定义应用目录
define('APP_PATH', './Application/');
//定义默认模块
define('BIND_MODULE', 'Home');
// 引入ThinkPHP入口文件
require '../ThinkPHP/ThinkPHP.php';

index.php

// 应用入口文件
// 检测PHP环境
if (version_compare(PHP_VERSION, '5.3.0', '<'))
    die('require PHP > 5.3.0 !');
// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG', True);
// 定义应用目录
define('APP_PATH', './Application/');
//定义默认模块
define('BIND_MODULE', 'Index');
// 引入ThinkPHP入口文件
require '../ThinkPHP/ThinkPHP.php';

这样,各个模块之间都有自己的默认模块,项目访问路径都会略掉模块关键字,显得更加清爽。

值得注意的地方,在加入新模块的时候,不能把旧的模块文件之间复制一份,改个新的模块名,这么做会报错。正确的做法是,在需要新增加模块是,先配置好这个模块的入口文件,然后通过浏览器访问这个入口文件,之后thinkphp会自动创建好这个新模块的目录文件,这时你再将旧模块的文件复制过来,就不会报错了。

前方10米有沙发可抢!
大人,请先右上角登个录 ↑
Copyright@2017-2020 www.dongguagua.com All Right Reserived 京ICP备17025269号