`
beyondhjjyt
  • 浏览: 39829 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

【Thinkphp教程】 如何进行模块分组

 
阅读更多
模块分组功能是为了更好的组织已有的模块,并且增加项目容量的一个有效机制。分组功能可以把以往的多项目合并到一个项目中去,这样一来,之前需要采用跨项目操作的地方,现在因为在一个项目中从而免去了不少麻烦,并且公共文件的重用也方便了,并且每个分组都可以有自己独立的配置文件、公共文件、语言包,在URL的访问上面也非常清晰。
模块分组相关的配置参数包括: 配置参数 说明
APP_GROUP_LIST 项目分组列表(配置即表示开启分组)
DEFAULT_GROUP 默认分组(默认值为Home)
TMPL_FILE_DEPR 分组模板下面模块和操作的分隔符,默认值为“/”
VAR_GROUP 分组的URL参数名,默认为g(普通模式URL才需要)
要启用分组模块非常简单,配置下APP_GROUP_LIST参数和DEFAULT_GROUP参数即可。
例如我们把当前的项目分成Home和Admin两个组,分别表示前台和后台功能,那么只需要在项目配置中添加下面的配置:

  1. 'APP_GROUP_LIST'=>'Home,Admin',//项目分组设定

  2. '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参数 来减少目录层次,该参数默认是 “/”,如果改成

  1. 'TMPL_FILE_DEPR'=>'_'


那么分组的模板文件就变成了
Tpl/Home/Index_index.html
Tpl/Admin/User_index.html
分组模块的概念,并不局限于将项目区分为前台和后台。你可以按自己所需类型,进行明确细致的区分,这样非常方便于项目管理和开发部署。
分组模块下面的具体模块和之前的模块功能没有任何区别,已有的URL和模块功能都可以很好的支持,例如空模块、空操作、伪静态等等。
更多的关于分组模式下面URL方面的区别可以查看URL生成部分的U方法的使用。
注意:模块分组不支持配置不同的URL模式。
分享到:
评论

相关推荐

    ThinkPHP实现跨模块调用操作方法概述

    读者若想进一步提高ThinkPHP的使用能力,可以深入学习官方提供的ThinkPHP入门教程、模板操作技巧总结、常用方法总结以及Smarty模板入门等相关内容,这些都是ThinkPHP开发社区中的宝贵资源,可以为开发者提供详尽的...

    ThinkPHP5.1完全开发手册.pdf

    包括对路由的定义、变量规则、路由地址、支持路由参数、跨域请求、注解路由、路由分组、MISS路由、资源路由、快捷路由、路由别名、路由绑定域名、路由URL生成等进行了详细讲解。 4. 控制器和操作 在控制器方面,...

    ThinkPHP 5 开发手册.pdf

    模型方面,ThinkPHP 5.0对核心模型进行了简化,并取消了字段缓存,减少了维护成本。新的模型机制还提供了更灵活的数据操作方法,如改进的join方法和order方法。 视图方面,引入了Traits来引入高级模型、视图模型和...

    thinkPHP分组后模板无法加载问题解决方法

    对于其他可能出现的类似问题,可以参考相关的ThinkPHP教程和文章,例如《ThinkPHP入门教程》、《ThinkPHP常用方法总结》等,这些资料可以帮助开发者深入理解框架的工作原理和最佳实践。此外,对于PHP操作Office文档...

    ThinkPHP5.0-快速入门手册(新手教程版).pdf

    在路由方面,ThinkPHP5.0支持规则路由的变量使用正则表达式定义,并且支持路由分组和闭包劫持。这些特性让路由管理变得灵活而强大,可以应对复杂的路由需求。 控制器方面,ThinkPHP5.0不再强制要求控制器继承自...

    ThinkPHP5.0完全开发手册.pdf

    ThinkPHP5.0的配置架构总览是一个全面的设置,通过配置文件可以对应用程序的行为进行精细控制。配置包括全局配置、模块配置以及环境变量配置等。其中,生命周期指的是应用从启动到关闭的整个过程,包括入口文件、URL...

    ThinkPHP5快速入门和路由完全指南和数据库模型掌握

    《ThinkPHP5快速入门和路由完全指南》及《数据库模型掌握》是一套全面解析ThinkPHP5框架的教程,旨在帮助初学者迅速上手并深入理解该框架的核心特性。以下是关于这些主题的详细知识点: 1. **ThinkPHP5快速入门**:...

    极光推送demo thinkphp

    总的来说,这个“极光推送demo thinkphp”项目涵盖了极光推送服务的基本使用和ThinkPHP框架的控制器功能,对于想要在PHP环境中实现推送功能的开发者来说,是一个非常有价值的实践教程。通过研究这两个文件,不仅可以...

    thinkphp5.0资料

    《ThinkPHP5快速入门》则是一份适合初学者的教程,它以简单易懂的方式引导读者快速上手ThinkPHP5框架,包括安装、基本使用、控制器、模型、视图、路由等方面的实践操作。 《ThinkPHP5路由完全指南》则专注于路由这...

    ThinkPHP 开发手册

    路由模块支持多种模式,如资源路由、快捷路由、路由分组、路由别名和MISS路由闭包等,允许开发者灵活地定义路由规则。 控制器是应用中负责接收用户的输入、处理数据并返回响应的部分。ThinkPHP的控制器设计包括自动...

    ThinkPHP5.1完全开发手册-08191054.pdf

    在URL访问方面,ThinkPHP5.1支持模块设计,可以通过命名空间来管理不同的模块。容器和依赖注入则提供了更灵活的对象管理机制。Facade(外观)模式简化了复杂的对象调用过程,使得开发者可以更方便地进行开发。 路由...

    ThinkPHP5.1完全开发手册 用户手册pdf版

    该框架遵循Apache2开源许可协议,允许开发者免费使用,甚至可以把基于ThinkPHP开发的应用开源或进行商业发布。 ThinkPHP5.1主要特性包括引入容器和Facade支持依赖注入、改进的(对象化)路由支持注解路由和跨域请求...

    PHP Thinkphp5全套基础视频教程 适合新手党入门(第四课 URL和路由 - URL)

    6. **路由分组**:通过路由分组,可以对一组相似的路由进行统一配置,减少重复代码,提高代码的可维护性。 实战部分,讲师会带领你创建一个简单的项目,通过实际操作让你深入理解URL和路由的使用。这不仅能够帮助你...

    ThinkPHP5.0完全开发手册

    ThinkPHP5.0的控制器设计也十分灵活,支持多级控制器和分层控制器,使得控制器可以根据业务需求进行拆分,增强了代码的模块化。控制器中也支持Rest风格的控制器设计,能够更好地处理RESTful API的设计需求。同时,...

    ThinkPHP_RBAC

    【描述】"ThinkPHP 独立分组目录" 暗示了这个教程可能将ThinkPHP项目结构按照功能或模块进行独立划分,每个分组目录代表一个特定的功能或业务领域,这样可以提高代码的可读性和可维护性。RBAC系统通常包含用户管理、...

    ThinkPHP框架开发的唯美小清新音乐视频博客系统整站源码自适应手机端

    后台采用ThinkPHP框架开发,后台包含会员分组、权限管理、数据库备份还原、文章采集、广告管理等众多功能,拿来做通用后台权限管理系统也是非常的棒!该博客系统源码囊括了音乐、视频、图片、文章,单页等各种常用...

    ThinkPHP_5_简明开发手册

    ThinkPHP 5.0采用了组件化的设计思想,整个框架可以被拆分为多个模块化的组件,每个组件专注于完成一个特定的功能。这种设计有利于提高代码的复用性,降低耦合度,同时让开发者可以更容易地维护和扩展系统。 ### ...

Global site tag (gtag.js) - Google Analytics