ThinkPHP惯例配置文件详解
ThinkPHP的系统内置有一个惯例配置文件(位于系统目录下面的Conf\convention.php),按照大多数的使用对常用参数进行了默认配置。本文对惯例配置文件作出注释详解如下,供大家参考:
<?php /** +------------------------------------------------------------------------------ *ThinkPHP惯例配置文件 *该文件请不要修改,如果要覆盖惯例配置的值,可在项目配置文件中设定和惯例不符的配置项 *配置名称大小写任意,系统会统一转换成小写 *所有配置参数都可以在生效前动态改变 +------------------------------------------------------------------------------ *@categoryThink *@packageCommon *@version$Id$ +------------------------------------------------------------------------------ */ if(!defined('THINK_PATH'))exit(); returnarray( /*项目设定*/ '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数据返回格式,可选JSONXML... '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,//静态缓存读取方式0readfile1redirect '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,默认为sindex.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 );
此外,还需注意,由于新版系统架构的改变,部分惯例配置的参数已经分离出来纳入了行为扩展的属性参数,读者可查阅手册进一步了解。