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 Memcache 中实现消息队列
Nov 24 PHP
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
Feb 08 PHP
使用迭代器 遍历文件信息的详解
Jun 08 PHP
如何使用php判断所处服务器操作系统的类型
Jun 20 PHP
PHP获取毫秒级时间戳的方法
Apr 15 PHP
学习php设计模式 php实现合成模式(composite)
Dec 08 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
Oct 18 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
Dec 12 PHP
php使用自定义函数实现汉字分割替换功能示例
Jan 30 PHP
/etc/php-fpm.d/www.conf 配置注意事项
Feb 04 PHP
PHP中ajax无刷新上传图片与图片下载功能
Feb 21 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
Apr 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
一个php生成16位随机数的代码(两种方法)
2014/09/16 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
js实现翻页后保持checkbox选中状态的实现方法
2012/11/03 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
实用的Jquery选项卡TAB示例代码
2013/08/28 Javascript
JS下拉缓冲菜单示例代码
2013/08/30 Javascript
js中Math之random,round,ceil,floor的用法总结
2013/12/26 Javascript
jquery实现无限分级横向导航菜单的方法
2015/03/12 Javascript
js获取页面description的方法
2015/05/21 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
JS中touchstart事件与click事件冲突的解决方法
2018/03/12 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
2018/04/01 Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
2018/08/25 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
python表格存取的方法
2018/03/07 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
python邮件发送smtplib使用详解
2020/06/16 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
2019/06/27 Python
浅谈Tensorflow 动态双向RNN的输出问题
2020/01/20 Python
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
维氏瑞士军刀英国网站:Victorinox英国
2019/07/04 全球购物
The Hut英国:英国领先的豪华在线百货商店
2019/07/26 全球购物
音乐系毕业生自荐信
2013/10/27 职场文书
护理专业毕业生自荐书
2014/05/24 职场文书
先进基层党组织材料
2014/12/25 职场文书
《颐和园》教学反思
2016/02/19 职场文书
python ConfigParser库的使用及遇到的坑
2022/02/12 Python
Java实现字符串转为驼峰格式的方法详解
2022/07/07 Java/Android