thinkPHP5.0框架模块设计详解

2019-05-01 21:36:29于丽

其中app可以通过定义的方式更改,例如我们在应用配置文件中修改:

'app_namespace' => 'application',

那么,index模块的类库命名空间则变成:

// index模块的Index控制器类
applicationindexcontrollerIndex
// index模块的User模型类
applicationindexmodelUser

更多的关于类库和命名空间的关系可以参考下一前面一篇《thinkPHP5.0框架命名空间详解》。

模块和控制器隐藏

由于默认是采用多模块的支持,所以多个模块的情况下必须在URL地址中标识当前模块,如果只有一个模块的话,可以进行模块绑定,方法是应用的公共文件中添加如下代码:

// 绑定当前访问到index模块
thinkRoute::bind('index');

绑定后,我们的URL访问地址则变成:

http://serverName/index.php/控制器/操作/[参数名/参数值...]

访问的模块是index模块。

如果你的应用比较简单,模块和控制器都只有一个,那么可以在应用公共文件中绑定模块和控制器,如下:

// 绑定当前访问到index模块的index控制器
thinkRoute::bind('index/index');

设置后,我们的URL访问地址则变成:

http://serverName/应用入口/操作/[参数名/参数值...]

访问的模块是index模块,控制器是Index控制器。

单一模块

如果你的应用比较简单,只有唯一一个模块,那么可以进一步简化成使用单一模块结构,方法如下:

首先在应用配置文件中定义:

// 关闭多模块设计
'app_multi_module' => false,

然后,调整应用目录的结构为如下:

├─application        应用目录(可设置)
│  ├─controller      控制器目录
│  ├─model           模型目录
│  ├─view            视图目录
│  ├─ ...            更多类库目录
│  ├─common.php      函数文件
│  ├─route.php       路由配置文件
│  ├─database.php    数据库配置文件
│  └─config.php      配置文件

URL访问地址变成

http://serverName/index.php(或者其它应用入口)/控制器/操作/[参数名/参数值...]

同时,单一模块设计下的应用类库的命名空间也有所调整,例如:

原来的

appindexcontrollerIndex
appindexmodelUser

变成

appcontrollerIndex
appmodelUser

								 
			 
相关文章 大家在看