ThinkPHP项目分组配置方法分析


Posted in PHP onMarch 23, 2016

本文实例讲述了ThinkPHP项目分组配置方法。分享给大家供大家参考,具体如下:

项目分组概述

项目分组是 ThinkPHP 一个重要机制,项目分组功能可以把以往的多项目合并到一个项目中去,对于公共的文件可以重用,但每个分组又可以有自己独立的配置文件、公共文件、语言包等。

以一个普通的网站为例,如果不采用项目分组,那么通常是将网站前台(提供给用户浏览部分)作为一个项目。而网站的后台管理部分,可能有独立的配置文件,CSS文件及模板等,因此作为另一个项目来管理。但实际上这两个项目都是网站的内容,他们之间可以共享一些内容如数据库配置文件甚至一些模型类和跨项目操作等。

项目分组就很好的解决了同一个系统下各项目之间的共性与个性问题。

项目分组配置

在系统配置文件(Config/config.php)里面进行简单的项目分组配置即可开启项目分组。

与项目分组模式有关的配置有五个:

配置选项 说明 例子或建议
APP_GROUP_LIST 项目分组所有名称列表,若不设置则表示不启用项目分组模式 'APP_GROUP_LIST'=>'Home,Admin,User,Blog',
DEFAULT_GROUP 默认的项目分组名称,系统默认是 Home 'DEFAULT_GROUP' =>'Home',
APP_GROUP_DEPR 项目分组之间的分割符,默认是 . (点),用于 A函数 D函数 和 路由配置中的分隔 建议默认
TMPL_FILE_DEPR 模板文件中模块与操作之间的分割符,默认是 / ,只对项目分组部署有效 建议默认,可使用 U 方法自动生成 URL
VAR_GROUP 获取项目分组名称的变量,默认是 g index.php?g=Admin&m=Index&a=edit,建议默认

当 TMPL_FILE_DEPR 配置为 _ 时,以 Admin 分组 Index 模块 add 操作来说,其对应的模板文件由原来的:

Tpl/default/Admin/Index/add.html

变更为:

Tpl/default/Admin/Index_add.html

通过这个配置,使模板目录结构减少了一层目录。

提示:TMPL_FILE_DEPR 同时也是语言文件中分组语言定义与语言文件之间的分隔符。

以上配置选项中,要启用分组,APP_GROUP_LIST 必须设置,其他选项则根据实际情况加以配置。

项目分组个性配置

如果要为分组的项目添加独自的个性化配置,可以在配置目录 Conf 下,建立与项目组名称相同的目录(目录命名格式是:分组名称的首字母大写+其余字母小写的形式),并在目录内定义一个 config.php 配置文件。如 Admin 项目的个性配置文件:

Conf/Admin/config.php

当分组名称的目录下有定义 config.php 文件时,每次访问该分组,系统会自动加载分组的独立配置并覆盖公共配置中相同选项的设定。

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

PHP 相关文章推荐
PHP中将数组转成XML格式的实现代码
Aug 08 PHP
php正则表达式(regar expression)
Sep 10 PHP
simplehtmldom Doc api帮助文档
Mar 26 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
Nov 07 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
Jun 25 PHP
PHP使用Mysql事务实例解析
Sep 08 PHP
php获取YouTube视频信息的方法
Feb 11 PHP
PHP实现根据图片色界在不同位置加水印的方法
Aug 08 PHP
PHP中PDO的事务处理分析
Apr 07 PHP
YII2框架中使用yii.js实现的post请求
Apr 09 PHP
Yii框架分页实现方法详解
May 20 PHP
PHP PDOStatement::setFetchMode讲解
Feb 03 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
Mar 23 #PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
Mar 23 #PHP
ThinkPHP路由机制简介
Mar 23 #PHP
PHP getallheaders无法获取自定义头(headers)的问题
Mar 23 #PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
Mar 23 #PHP
SSO单点登录的PHP实现方法(Laravel框架)
Mar 23 #PHP
Zend Framework开发入门经典教程
Mar 23 #PHP
You might like
ThinkPHP令牌验证实例
2014/06/18 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
PHP var关键字相关原理及使用实例解析
2020/07/11 PHP
情人节之礼 js项链效果
2012/02/13 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
微信小程序签到功能
2018/10/31 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
手写Vue源码之数据劫持示例详解
2021/01/04 Vue.js
简述Python中的进程、线程、协程
2016/03/18 Python
sublime text 3配置使用python操作方法
2017/06/11 Python
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
如何基于python把文字图片写入word文档
2020/07/31 Python
python调用有道智云API实现文件批量翻译
2020/10/10 Python
LORAC官网:美国彩妆品牌
2019/08/27 全球购物
如何将无状态会话Bean发布为WEB服务,只有无状态会话Bean可以发布为WEB服务?
2015/12/03 面试题
十八届三中全会报告学习材料
2014/02/17 职场文书
竞选班长的演讲稿
2014/04/24 职场文书
市政管理求职信范文
2014/05/07 职场文书
车辆委托书范本
2014/10/05 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
领导干部作风建设自查报告
2014/10/23 职场文书
优秀党员主要事迹范文
2015/11/05 职场文书
《从现在开始》教学反思
2016/02/16 职场文书
2016年度师德标兵先进事迹材料
2016/02/26 职场文书
Golang二维数组的使用方式
2021/05/28 Golang
Python基础知识学习之类的继承
2021/05/31 Python
zabbix监控mysql的实例方法
2021/06/02 MySQL
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android
使用python绘制横竖条形图
2022/04/21 Python