ThinkPHP5.1学习--模块设计
一.目录结构
-
ThinkPHP5.1 默认是多模块架构,也可以设置为单模块操作;
-
所有模块的命名空间以 app 这三个字母作为根命名空间(可通过环境变量更改);
-
手册摘入的结构列表:
-
-
模块下的类库文件命名空间统一为:app\模块名;
-
比如:app\index\controller\Index
-
多模块设计在 URL 访问时,必须指定响应的模块名,比如:public/test/abc/eat;
-
如果你只有 test 这一个模块时,你可以绑定这个模块,从而省略写法;
-
打开 public/index.php 的文件,追加一个方法:
Container::get(‘app’)->bind(‘test’)->run()->send(); -
此时,URL 调用就变成了:public/abc/eat;多模块时,则其它无法访问;
-
如果你的应用特别简单,只有一个模块,一个控制器,那改写下追加的方法:
Container::get(‘app’)->bind(‘test/abc’)->run()->send(); -
此时,URL 调用就变成了:public/eat;得到了极简;其它控制器则无法访问;
二.空模块
- 可以通过环境变量设置空目录,将不存在的目录统一指向指定目录;
- 在 config 目录下的 app.php 修改:
// 默认的空模块名
‘empty_module’ => ‘index’,
3.空模块只有在多模块开启,且没有绑定模块的情况下生效;
三.单一模块
- 如果你的应用只有一个模块,那可以直接设置单模块;
- 在 config 目录下的 app.php 修改:
// 是否支持多模块
‘app_multi_module’ => false, - 目录结构可变为,手册摘入:
- URL 地址 public/index/one,即:控制器/操作;
- 单一模块的命名空间也变更为:app/controller;
四.环境变量 - ThinkPHP5.1 提供了一个类库 Env 来获取环境变量;
return Env::get(‘app_path’);