TP5自动生成模块
Posted 张八百_php学习笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TP5自动生成模块相关的知识,希望对你有一定的参考价值。
- 如何去掉public?
方法①:把网站根目录放到public目录下即可,如
www/ 改为 www/public,TP5的文件还是直接放在www/目录下
方法②:将public下的index.php移动到根目录,修改index.php里面的代码,改变引用路径如下:
// 定义应用目录
define(\'APP_PATH\', __DIR__ . \'./application/\');
// 加载框架引导文件
require __DIR__ . \'./thinkphp/start.php\';
如果要开启重写机制,还要将public下的.htaccess也一起剪到根目录(限apache服务器)
2.自动生成模块
1)在网站根目录有一个bulid.php文件,可以用于生成模块,内容如下:
return [
// 生成应用公共文件
\'__file__\' => [\'common.php\', \'config.php\', \'database.php\'],
// 定义demo模块的自动生成 (按照实际定义的文件名生成)
\'demo\' => [
\'__file__\' => [\'common.php\'],
\'__dir__\' => [\'behavior\', \'controller\', \'model\', \'view\'],
\'controller\' => [\'Index\', \'Test\', \'UserType\'],
\'model\' => [\'User\', \'UserType\'],
\'view\' => [\'index/index\'],
],
// 其他更多的模块定义
];
2)复制一份 demo 部分代码,把“demo”修改成自己需要的模块名字,其他部分默认不需要修改
return [
// 生成应用公共文件
\'__file__\' => [\'common.php\', \'config.php\', \'database.php\'],
// 定义demo模块的自动生成 (按照实际定义的文件名生成)
\'demo\' => [
\'__file__\' => [\'common.php\'],
\'__dir__\' => [\'behavior\', \'controller\', \'model\', \'view\'],
\'controller\' => [\'Index\', \'Test\', \'UserType\'],
\'model\' => [\'User\', \'UserType\'],
\'view\' => [\'index/index\'],
],
// 其他更多的模块定义
\'admin\' => [
\'__file__\' => [\'common.php\'],
\'__dir__\' => [\'behavior\', \'controller\', \'model\', \'view\'],
\'controller\' => [\'Index\', \'Test\', \'UserType\'],
\'model\' => [\'User\', \'UserType\'],
\'view\' => [\'index/index\'],
],
];
3)在网站index.php文件中添加两段代码,运行自动生成文件
// 定义应用目录
define(\'APP_PATH\', __DIR__ . \'./application/\');
// 加载框架引导文件
require __DIR__ . \'./thinkphp/start.php\';
//读取自动生成定义文件
$build = include \'./build.php\';
//运行自动生成
\\think\\Build::run($build,\'app\',false);
4)直接访问站点首页,会执行index.php这个文件,自动生成模块及其相应的目录文件(如下)
注意事项:
1) 开始多模块必须保证开启了多模块(默认开启),可在config.php中设置
// 是否支持多模块
\'app_multi_module\' => true,
2)index.php不一定在public文件中,有时候会被设置在根目录下,要保证bulid.php的文件目录引入路径正确
以上是关于TP5自动生成模块的主要内容,如果未能解决你的问题,请参考以下文章
TP5报如下的错误 Indirect modification of overloaded element of thinkpaginatorCollection has no effect(代码片段