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 删除数组元素
Jan 16 PHP
PHP实现邮件群发的源码
Jun 18 PHP
下拉列表多级联动dropDownList示例代码
Jun 27 PHP
php自定义session示例分享
Apr 22 PHP
PHP中mysql_field_type()函数用法
Nov 24 PHP
smarty中常用方法实例总结
Aug 07 PHP
thinkPHP微信分享接口JSSDK用法实例
Jul 07 PHP
PHP简单实现二维数组的矩阵转置操作示例
Nov 24 PHP
PHP注释语法规范与命名规范详解篇
Jan 21 PHP
实例讲解PHP中使用命名空间
Jan 27 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
Oct 08 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
Apr 06 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加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
2013/05/27 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
BootStrap实现树形目录组件代码详解
2016/06/21 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
nodejs同步调用获取mysql数据时遇到的大坑
2019/03/02 NodeJs
vue 解决文本框被键盘遮住的问题
2019/11/06 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
一行JavaScript代码如何实现瀑布流布局
2020/12/11 Javascript
python检测远程端口是否打开的方法
2015/03/14 Python
使用Node.js和Socket.IO扩展Django的实时处理功能
2015/04/20 Python
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
Python中的数学运算操作符使用进阶
2016/06/20 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
python中for用来遍历range函数的方法
2018/06/08 Python
python仿抖音表白神器
2019/04/08 Python
scikit-learn线性回归,多元回归,多项式回归的实现
2019/08/29 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
Python self用法详解
2020/11/28 Python
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
英国最大的天然和有机产品在线零售商之一:Big Green Smile
2020/05/06 全球购物
银行办理业务介绍信
2014/01/18 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
担保书格式范文
2015/09/22 职场文书
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android
mysql 生成连续日期及变量赋值
2022/03/20 MySQL
SpringCloud Function SpEL注入漏洞分析及环境搭建
2022/04/08 Java/Android