thinkPHP5.0框架模块设计详解

本文实例讲述了thinkPHP5.0框架模块设计。分享给大家供大家参考,具体如下:

5.0版本对模块的功能做了灵活设计,认采用多模块的架构,并且支持单一模块设计,所有模块的命名空间均以app作为根命名空间(可配置更改)。

目录结构

标准的应用和模块目录结构如下:

PHP 公共函数文件 │ ├─route.PHP 路由配置文件 │ ├─database.PHP 数据库配置文件 │ ├─config.PHP 应用配置文件 │ ├─module1 模块1目录 │ │ ├─config.PHP 模块配置文件 │ │ ├─common.PHP 模块函数文件 │ │ ├─controller 控制器目录 │ │ ├─model 模型目录 │ │ ├─view 视图目录 │ │ └─ ... 更多类库目录 │ │ │ ├─module2 模块2目录 │ │ ├─config.PHP 模块配置文件 │ │ ├─common.PHP 模块函数文件 │ │ ├─controller 控制器目录 │ │ ├─model 模型目录 │ │ ├─view 视图目录 │ │ └─ ... 更多类库目录

遵循ThinkPHP5.0的命名规范,模块目录全部采用小写和下划线命名。

名称请避免使用PHP保留关键字(保留字列表参见 http://PHP.net/manual/zh/reserved.keywords.PHP ),否则会造成系统错误

其中common模块是一个特殊的模块,认是禁止直接访问的,一般用于放置一些公共的类库用于其他模块的继承。

模块类库

一个模块下面的类库文件的命名空间统一以app\模块名开头,例如:

rush:PHP;"> // index模块的Index控制器类 app\index\controller\Index // index模块的User模型类 app\index\model\User

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

'application',

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

rush:PHP;"> // index模块的Index控制器类 application\index\controller\Index // index模块的User模型类 application\index\model\User

更多的关于类库和命名空间的关系可以参考下一前面一篇《》。

模块和控制器隐藏

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

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

访问的模块是index模块。

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

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

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

单一模块

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

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

false,

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

URL访问地址变成

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

原来的

变成

更多的URL简化和定制还可以通过URL路由功能实现。

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

相关文章

(1)创建数据表: CREATE TABLE IF NOT EXISTS `think_form` ...
组合查询的主体还是采用数组方式查询,只是加入了一些特殊的...
(1)创建模版:/App/Home/View/Form/edit.html   <FORM m...
自定义配置文件user.php: <?php return array(    \'se...
在一些成熟的CMS系统中,后台一般都包含一个配置中心(如织梦...
废话不多说先上图预览下,即本博客的分页; 这个分页类是在...