ThinkPHP惯例配置文件详解
author:一佰互联 2019-04-29   click:165

ThinkPHP的系统内置有一个惯例配置文件(位于系统目录下面的Confconvention.php),按照大多数的使用对常用参数进行了默认配置。本文对惯例配置文件作出注释详解如下,供大家参考:

<?php
/**
+------------------------------------------------------------------------------
* ThinkPHP惯例配置文件
* 该文件请不要修改,如果要覆盖惯例配置的值,可在项目配置文件中设定和惯例不符的配置项
* 配置名称大小写任意,系统会统一转换成小写
* 所有配置参数都可以在生效前动态改变
+------------------------------------------------------------------------------
* @category Think
* @package Common
* @version $Id$
+------------------------------------------------------------------------------
*/
if (!defined("THINK_PATH")) exit();
return array(

/* 项目设定 */
"APP_DEBUG"   => false, // 是否开启调试模式
"APP_DOMAIN_DEPLOY"   => false,  // 是否使用独立域名部署项目
"APP_PLUGIN_ON"     => false,  // 是否开启插件机制
"APP_FILE_CASE"     => false,  // 是否检查文件的大小写 对Windows平台有效
"APP_GROUP_DEPR"    => ".",   // 模块分组之间的分割符
"APP_GROUP_LIST"    => "",   // 项目分组设定,多个组之间用逗号分隔,例如"Home,Admin"
"APP_AUTOLOAD_REG"   => false,  // 是否开启SPL_AUTOLOAD_REGISTER
"APP_AUTOLOAD_PATH"   => "Think.Util.",// __autoLoad 机制额外检测路径设置,注意搜索顺序
"APP_CONFIG_LIST"    => array("taglibs","routes","tags","htmls","modules","actions"),// 项目额外需要加载的配置列表,默认包括:taglibs(标签库定义),routes(路由定义),tags(标签定义),(htmls)静态缓存定义, modules(扩展模块),actions(扩展操作)

/* Cookie设置 */
"COOKIE_EXPIRE"     => 3600,  // Coodie有效期
"COOKIE_DOMAIN"     => "",   // Cookie有效域名
"COOKIE_PATH"      => "/",   // Cookie路径
"COOKIE_PREFIX"     => "",   // Cookie前缀 避免冲突

/* 默认设定 */
"DEFAULT_APP"      => "@",   // 默认项目名称,@表示当前项目
"DEFAULT_GROUP"     => "Home", // 默认分组
"DEFAULT_MODULE"    => "Index", // 默认模块名称
"DEFAULT_ACTION"    => "index", // 默认操作名称
"DEFAULT_CHARSET"    => "utf-8", // 默认输出编码
"DEFAULT_TIMEZONE"   => "PRC", // 默认时区
"DEFAULT_AJAX_RETURN"  => "JSON", // 默认AJAX 数据返回格式,可选JSON XML ...
"DEFAULT_THEME"  => "default", // 默认模板主题名称
"DEFAULT_LANG"     => "zh-cn", // 默认语言

/* 数据库设置 */
"DB_TYPE"        => "mysql",   // 数据库类型
"DB_HOST"        => "localhost", // 服务器地址
"DB_NAME"        => "",     // 数据库名
"DB_USER"        => "root",   // 用户名
"DB_PWD"        => "",     // 密码
"DB_PORT"        => 3306,    // 端口
"DB_PREFIX"       => "think_",  // 数据库表前缀
"DB_SUFFIX"       => "",     // 数据库表后缀
"DB_FIELDTYPE_CHECK"  => false,    // 是否进行字段类型检查
"DB_FIELDS_CACHE"    => true,    // 启用字段缓存
"DB_CHARSET"      => "utf8",   // 数据库编码默认采用utf8
"DB_DEPLOY_TYPE"    => 0, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
"DB_RW_SEPARATE"    => false,    // 数据库读写是否分离 主从式有效

/* 数据缓存设置 */
"DATA_CACHE_TIME"  => -1,   // 数据缓存有效期
"DATA_CACHE_COMPRESS"  => false,  // 数据缓存是否压缩缓存
"DATA_CACHE_CHECK"  => false,  // 数据缓存是否校验缓存
"DATA_CACHE_TYPE"  => "File", // 数据缓存类型,支持:File|Db|Apc|Memcache|Shmop|Sqlite| Xcache|Apachenote|Eaccelerator
"DATA_CACHE_PATH"    => TEMP_PATH,// 缓存路径设置 (仅对File方式缓存有效)
"DATA_CACHE_SUBDIR"  => false,  // 使用子目录缓存 (自动根据缓存标识的哈希创建子目录)
"DATA_PATH_LEVEL"    => 1,    // 子目录缓存级别

/* 错误设置 */
"ERROR_MESSAGE" => "您浏览的页面暂时发生了错误!请稍后再试~",//错误显示信息,非调试模式有效
"ERROR_PAGE"  => "", // 错误定向页面

/* 静态缓存设置 */
"HTML_CACHE_ON"  => false,  // 默认关闭静态缓存
"HTML_CACHE_TIME"  => 60,   // 静态缓存有效期
"HTML_READ_TYPE"    => 0,    // 静态缓存读取方式 0 readfile 1 redirect
"HTML_FILE_SUFFIX"   => ".shtml",// 默认静态文件后缀

/* 语言设置 */
"LANG_SWITCH_ON"    => false,  // 默认关闭多语言包功能
"LANG_AUTO_DETECT"   => true,  // 自动侦测语言 开启多语言功能后有效

/* 日志设置 */
"LOG_RECORD"      => false,  // 默认不记录日志
"LOG_FILE_SIZE"     => 2097152, // 日志文件大小限制
"LOG_RECORD_LEVEL"   => array("EMERG","ALERT","CRIT","ERR"),// 允许记录的日志级别

/* 分页设置 */
"PAGE_ROLLPAGE"     => 5,   // 分页显示页数
"PAGE_LISTROWS"     => 20,   // 分页每页显示记录数

/* SESSION设置 */
"SESSION_AUTO_START"  => true,  // 是否自动开启Session
// 内置SESSION类可用参数
//"SESSION_NAME"     => "",   // Session名称
//"SESSION_PATH"     => "",   // Session保存路径
//"SESSION_CALLBACK"   => "",   // Session 对象反序列化时候的回调函数

/* 运行时间设置 */
"SHOW_RUN_TIME"  => false,  // 运行时间显示
"SHOW_ADV_TIME"  => false,  // 显示详细的运行时间
"SHOW_DB_TIMES"  => false,  // 显示数据库查询和写入次数
"SHOW_CACHE_TIMES"  => false,  // 显示缓存操作次数
"SHOW_USE_MEM"  => false,  // 显示内存开销
"SHOW_PAGE_TRACE"  => false,  // 显示页面Trace信息 由Trace文件定义和Action操作赋值
"SHOW_ERROR_MSG"    => true,  // 显示错误信息

/* 模板引擎设置 */
"TMPL_ENGINE_TYPE"  => "Think",   // 默认模板引擎 以下设置仅对使用Think模板引擎有效
"TMPL_DETECT_THEME"   => false,    // 自动侦测模板主题
"TMPL_TEMPLATE_SUFFIX" => ".html",   // 默认模板文件后缀
"TMPL_CACHFILE_SUFFIX" => ".php",   // 默认模板缓存后缀
"TMPL_DENY_FUNC_LIST" => "echo,exit", // 模板引擎禁用函数
"TMPL_PARSE_STRING"   => "",     // 模板引擎要自动替换的字符串,必须是数组形式。
"TMPL_L_DELIM"     => "{",  // 模板引擎普通标签开始标记
"TMPL_R_DELIM"     => "}",  // 模板引擎普通标签结束标记
"TMPL_VAR_IDENTIFY"   => "array",   // 模板变量识别。留空自动判断,参数为"obj"则表示对象
"TMPL_STRIP_SPACE"   => false,    // 是否去除模板文件里面的html空格与换行
"TMPL_CACHE_ON"  => true,    // 是否开启模板编译缓存,设为false则每次都会重新编译
"TMPL_CACHE_TIME"  => -1,     // 模板缓存有效期 -1 为永久,(以数字为值,单位:秒)
"TMPL_ACTION_ERROR"   => "Public:success", // 默认错误跳转对应的模板文件
"TMPL_ACTION_SUCCESS"  => "Public:success", // 默认成功跳转对应的模板文件
"TMPL_TRACE_FILE"    => THINK_PATH."/Tpl/PageTrace.tpl.php",   // 页面Trace的模板文件
"TMPL_EXCEPTION_FILE"  => THINK_PATH."/Tpl/ThinkException.tpl.php",// 异常页面的模板文件
"TMPL_FILE_DEPR"=>"/", //模板文件MODULE_NAME与ACTION_NAME之间的分割符,只对项目分组部署有效
// Think模板引擎标签库相关设定
"TAGLIB_BEGIN"     => "<", // 标签库标签开始标记
"TAGLIB_END"      => ">", // 标签库标签结束标记
"TAGLIB_LOAD"      => true, // 是否使用内置标签库之外的其它标签库,默认自动检测
"TAGLIB_BUILD_IN"    => "cx", // 内置标签库名称(标签使用不必指定标签库名称),以逗号分隔
"TAGLIB_PRE_LOAD"    => "",  // 需要额外加载的标签库(须指定标签库名称),多个以逗号分隔
"TAG_NESTED_LEVEL"  => 3,  // 标签嵌套级别
"TAG_EXTEND_PARSE"   => "",  // 指定对普通标签进行扩展定义和解析的函数名称。

/* 表单令牌验证 */
"TOKEN_ON"          =>  true,   // 开启令牌验证
"TOKEN_NAME"        =>  "__hash__",  // 令牌验证的表单隐藏字段名称
"TOKEN_TYPE"         =>  "md5",  // 令牌验证哈希规则

/* URL设置 */
"URL_CASE_INSENSITIVE" => false,  // URL地址是否不区分大小写
"URL_ROUTER_ON"     => false,  // 是否开启URL路由
"URL_DISPATCH_ON"    => true, // 是否启用Dispatcher
"URL_MODEL"   => 1,    // URL访问模式,可选参数0、1、2、3,代表以下四种模式:
// 0 (普通模式); 1 (PATHINFO 模式); 2 (REWRITE 模式); 3 (兼容模式) 当URL_DISPATCH_ON开启后有效; 默认为PATHINFO 模式,提供最好的用户体验和SEO支持
"URL_PATHINFO_MODEL"  => 2,    // PATHINFO 模式,使用数字1、2、3代表以下三种模式:
// 1 普通模式(参数没有顺序,例如/m/module/a/action/id/1);
// 2 智能模式(系统默认使用的模式,可自动识别模块和操作/module/action/id/1/ 或者 /module,action,id,1/...);
// 3 兼容模式(通过一个GET变量将PATHINFO传递给dispather,默认为s index.php?s=/module/action/id/1)
"URL_PATHINFO_DEPR"   => "/", // PATHINFO模式下,各参数之间的分割符号
"URL_HTML_SUFFIX"    => "", // URL伪静态后缀设置

/* 系统变量名称设置 */
"VAR_GROUP"       => "g",   // 默认分组获取变量
"VAR_MODULE"      => "m",  // 默认模块获取变量
"VAR_ACTION"      => "a",  // 默认操作获取变量
"VAR_ROUTER"      => "r",   // 默认路由获取变量
"VAR_PAGE"       => "p",  // 默认分页跳转变量
"VAR_TEMPLATE"     => "t",  // 默认模板切换变量
"VAR_LANGUAGE"     => "l",  // 默认语言切换变量
"VAR_AJAX_SUBMIT"    => "ajax", // 默认的AJAX提交变量
"VAR_PATHINFO"     => "s", // PATHINFO 兼容模式获取变量例如 ?s=/module/action/id/1 后面的参数取决于URL_PATHINFO_MODEL 和 URL_PATHINFO_DEPR

);

此外,还需注意,由于新版系统架构的改变,部分惯例配置的参数已经分离出来纳入了行为扩展的属性参数,读者可查阅手册进一步了解。