模块分组功能是为了更好的组织已有的模块,并且增加项目容量的一个有效机制。分组功能可以把以往的多项目合并到一个项目中去,这样一来,之前需要采用跨项目操作的地方,现在因为在一个项目中从而免去了不少麻烦,并且公共文件的重用也方便了,并且每个分组都可以有自己独立的配置文件、公共文件、语言包,在URL的访问上面也非常清晰。
模块分组相关的配置参数包括:
配置参数
说明
APP_GROUP_LIST |
项目分组列表(配置即表示开启分组) |
DEFAULT_GROUP |
默认分组(默认值为Home) |
TMPL_FILE_DEPR |
分组模板下面模块和操作的分隔符,默认值为“/” |
VAR_GROUP |
分组的URL参数名,默认为g(普通模式URL才需要) |
要启用分组模块非常简单,配置下APP_GROUP_LIST参数和DEFAULT_GROUP参数即可。
例如我们把当前的项目分成Home和Admin两个组,分别表示前台和后台功能,那么只需要在项目配置中添加下面的配置:
-
'APP_GROUP_LIST'=>'Home,Admin',//项目分组设定
-
'DEFAULT_GROUP'=>'Home',//默认分组
多个分组之间用逗号分隔即可,默认分组只允许设置一个。
在我们启用项目分组之前,由于使用的两个项目,所以URL地址分别是:
http://serverName/index.php/Index/index Home项目地址
http://serverName/Admin/index.php/Index/index Admin项目地址
采用了分组模式后,URL地址变成:
http://serverName/index.php/Home/Index/indexHome分组地址
如果Home是默认分组的话 还可以变成 http://serverName/index.php/Index/index
http://serverName/index.php/Admin/Index/indexAdmin分组地址
如果设置了隐藏index.php的话,两者的URL表现效果基本上是一致的,但是从管理和公共调用的角度来看,确实方便了不少。当使用分组模式时,目录结构只是做了一点小小的扩展,分组和普通模块的项目目录区别如下:
项目目录
分组(以Home和Admin分组为例)
不分组
公共目录 (Common) |
Home分组:Common/Home/function.php
Admin分组:Common/Admin/function.php
公共文件:Common/common.php
|
Common/common.php |
配置目录 (Conf) |
Home分组:Conf/Home/config.php
Admin分组:Conf/Admin/config.php
公共配置:Conf/config.php
|
Conf/config.php |
Action目录 |
Home分组:Lib/Action/Home/
Admin分组:Lib/Action/Admin/
公共Action:Lib/Action/
|
Lib/Action/ |
Model目录 |
Lib/Model/ |
Lib/Model/ |
语言包目录(Lang以zh-cn为例) |
Home分组:Lang/zh-cn/Home/lang.php
Admin分组:Lang/zh-cn/Admin/lang.php
公共语言包:Lang/zh-cn/common.php
|
Lang/zh-cn/common.php |
模板目录(Tpl以theme主题为例) |
Home分组:Tpl/Home/theme/
Admin分组:Tpl/Admin/theme/
|
Tpl/theme/ |
运行时目录(Runtime) |
Home分组:Runtime/Home/
Admin分组:Runtime/Admin/
|
Runtime/ |
注意:分组目录的公共文件名称和语言包名称和公共的文件有一定的命名方式不同。
对于分组模式下面的Model类库是否需要分组完全看项目的需要,由于通常不同的分组对应的数据表是相同的,因此,我们推荐Model类库不分组存放,仍然保留之前的方式,无论是什么分组都公共调用Model类库。如果确实需要分组的话,仍然可以按照Action的方式,在Model目录下面创建Home和Admin目录,然后放入对应的Model类库,采用这种方式的话,模型类的调用方法有所区别。
模板文件的分组和Action类库分组也基本类似,在原来的模板主题目录下面增加一个分组目录即可。
例如:
Tpl/Home/Index/index.html
Tpl/Admin/User/index.html
相比之前的模板文件位置就是多了一个分组目录Home和Admin,如果觉得目录结构太深了,可以配置 TMPL_FILE_DEPR参数 来减少目录层次,该参数默认是 “/”,如果改成
-
'TMPL_FILE_DEPR'=>'_'
那么分组的模板文件就变成了
Tpl/Home/Index_index.html
Tpl/Admin/User_index.html
分组模块的概念,并不局限于将项目区分为前台和后台。你可以按自己所需类型,进行明确细致的区分,这样非常方便于项目管理和开发部署。
分组模块下面的具体模块和之前的模块功能没有任何区别,已有的URL和模块功能都可以很好的支持,例如空模块、空操作、伪静态等等。
更多的关于分组模式下面URL方面的区别可以查看URL生成部分的U方法的使用。
注意:模块分组不支持配置不同的URL模式。
分享到:
相关推荐
网上很多关于thinkPHP5空模块、空控制器、空方法的处理,但是不是很繁琐就是根本概念都没搞清,很多人直接把空模块理解成了空控制器空方法,这个是本人常用的处理方法,总结出来给大家分享下,可供参考
ThinkPHP教程。。。。ThinkPHP教程。。。。
ThinkPHP实现用户注册、登录模块 一、 开发环境 ... 2、文本编辑器:Sublime 3。...本案例主要使用ThinkPHP 3.2.3框架和PHP 7中的PDO数据对象对MySQL数据库进行查询和插入操作,从而实现用户的登录和注册功能。
thinkphp TPM 手机模版 APP模块
一个好的Thinkphp教程 对于初学者很有用哦!
原创文章,解释了无法加载模块index 的问题,详细讲解了ThinkPHP的分组实现同一个入口管理前台和后台。
ThinkPHP3.1系列教程
后盾网 ThinkPHP 教程 后台管理 模板 Admin
P_框架资料_ThinkPHP教程
thinkphp全套视频教程(附完整源码)
thinkphp详细高级教程 think框架 php框架 从设计到seo,从技巧到调试,详细参考资料。
ThinkPHP5.0入门实例教程,介绍了thinkphp知识,及开发实例。
最早诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。早期的思想架构来源于Struts,后来经过不断改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构...
教程名称:ThinkPHP搭建CMS项目视频教程(20讲)课程目录:【】第1讲.ThinkPHP搭建CMS项目设计01【】第20讲.ThinkPHP搭建CMS功能整合05【】第2讲.ThinkPHP搭建CMS项目设计02【】第3讲.ThinkPHP搭建CMS构建项目01【】...
ThinkPHP内置了A方法与R方法这两个特殊的大写字母方法来处理跨模块调用的问题。 目前Index模块内有index操作User模块有showName操作User模块及showName操作具体代码如下: <?php class UserAction extends ...
2014年辛星关于ThinkPHP教程的夏季版的教程的配套源代码,希望能对大家有所帮助。
教程名称:ThinkPHP3.1.3使用视频教程(45集)课程目录:【】01.ThinkPHP3.1.3使用视频教程--教程视频介绍【】02.ThinkPHP3.1.3使用教程--框架、OOP、MVC概念描述【】03.ThinkPHP3.1.3使用视频教程【】04.ThinkPHP...
ThinkPHP 是国人自己开发的一个先进框架,目前拥有很多的用户,是大家学习PHP框架的好先驱