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的文件目录引入路径正确