ThinkPHP惯例配置文件详解

ThinkPHP的系统内置有一个惯例配置文件(位于系统目录下面的Conf\convention.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

);

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

(0)

相关推荐

  • 修改apache配置文件去除thinkphp url中的index.php

    例如你的原路径是 http://localhost/test/index.php/index/add那么现在的地址是 http://localhost/test/index/add如何去掉index.php呢? 1.httpd.conf配置文件中加载了mod_rewrite.so模块  //在APACHE里面去配置 复制代码 代码如下: #LoadModule rewrite_module modules/mod_rewrite.so把前面的警号去掉 2.AllowOverride None 讲

  • 在nginx中配置pathinfo模式支持thinkphp的URL重写

    最近一个项目中使用了ThinkPHP做为开发框架,URL上我们使用了PATHINFO模式,但是Nginx默认是不支持PATHINFO的,需要进行手动配置才可以,于是我们按照了以下方法进行了Nginx的PATHINFO支持配置:修改nginx.conf,找到server中的 location ~ .php${},修改为location ~ .php {},并在其中增加以下内容: 复制代码 代码如下: set $path_info "";set $real_script_name $fas

  • ThinkPHP中公共函数路径和配置项路径的映射分析

    本文实例分析了ThinkPHP中公共函数路径和配置项路径的映射.分享给大家供大家参考.具体分析如下: ThinkPHP中在使用公共函数时(单一入口文件对应独立的项目),在Common文件夹中可以写公共的函数文件,写成文件名为common.php的文件会被系统自动加载,如果写成其他的函数名,则不会自动加载,但是有两种处理机制 1.在使用的时候手动加载 load('@.function');这样就会手动加载这个文件.@代表是在这个项目下的Common文件夹下的. 2.在配置文件中配置 复制代码 代码

  • 解析thinkphp基本配置 convention.php

    复制代码 代码如下: return  array( /* 项目设定 */    'APP_DEBUG'                => false,    // 是否开启调试模式    'APP_DOMAIN_DEPLOY'     => false,   // 是否使用独立域名部署项目    'APP_SUB_DOMAIN_DEPLOY' => false,   // 是否开启子域名    'APP_PLUGIN_ON'         => false,   // 是否开启

  • thinkPHP学习笔记之安装配置篇

    国产框架thinkPHP,是一款MVC框架,这个框架最初模拟JAVA的struts框架,使用单一入口文件模拟JAVA的过滤器,使用action来模拟STRUTS的控制器ACTION,所以为什么他的MVC之中,M是model,V是view,而control却是action的原因. 在3.2.3版本中,control改成了C,也是趋于形式,因为JAVA世界的springMVC开始流行,spring使用的control,不在使用action这种定义,其实action来表示control本身就有一定的误

  • 合并ThinkPHP配置文件以消除代码冗余的实现方法

    很多时候我们在使用ThinkPHP配置网站前台和网站后台的数据库连接时,往往都是分别在前台的配置文件和后台的配置文件单独都写了配置的.但是有很多时候配置前台和后台的数据库可能是一样的配置,但是在二个文件中用的都是一样的配置,那么这时代码就产生了冗余. 网站前台好使用数据库,比方说用户的注册.用户的登录还有评论等,这些都需要我们在前台使用到数据库,既然使用了数据库那么就得连接数据库!网站后台那就更不用讲了,使用数据库无处不在. 大部分的网站前台和后台都是使用的一个数据库,也就是前台和后台连接数据库

  • ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法

    本文实例讲述了ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法.分享给大家供大家参考,具体如下: 在作业管理系统中,学生登陆到个人中心后可以通过左侧的菜单查看自己已经提交的作业和未提交作业.那么在系统中如何实现这些数据的查询的呢?首先我们需要弄清楚学生(Student).班级(class).作业提交表(Submit)这三个表之间的关系. 1. 每个学生都属于一个班级 2. 班级里的每个学生都会被布置同样的作业 3. 学生提交作业后会在作业提交表中添加响应的记录,如学生的I

  • thinkPHP5.0框架环境变量配置方法

    本文实例讲述了thinkPHP5.0框架环境变量配置方法.分享给大家供大家参考,具体如下: 允许使用环境变量配置,并且优先级别比在配置文件中要高,因为在读取配置参数的时候,首先会判断环境变量中是否存在该配置. 在开发过程中,可以在应用根目录下面的.env来模拟环境变量配置,.env文件中的配置参数定义格式采用ini方式,例如: app_debug = true app_trace = true 如果你的部署环境单独配置了环境变量,那么请删除.env配置文件,避免冲突. 环境变量配置的参数会全部转

  • thinkphp的URL路由规则与配置实例

    本文实例讲述了thinkphp的URL路由规则与配置方法.分享给大家供大家参考.具体分析如下: 一.URL规则 1.默认是区分大小写的 2.如果我们不想区分大小写可以改配置文件 复制代码 代码如下: 'URL_CASE_INSENSITIVE'=>true,//url不区分大小写 3.如果模块名为 UserGroupAction,那么url找模块就必要要写成 复制代码 代码如下: http://localhost/thinkphp4/index.php/user_group/index 4.如果

  • ThinkPHP公共配置文件与各自项目中配置文件组合的方法

    本文实例讲述了ThinkPHP公共配置文件与各自项目中配置文件组合的方法.分享给大家供大家参考.具体实现方法如下: 在使用ThinkPHP时,在布局目录时,常使用的是单个入口文件对应一个项目目录,但是这样在写配置文件时,在各自的配置文件中,经常会使用重复的配置项,所用这时就会将公共的配置项放在一个公共的目录下. 具体实现方法: 使用配置文件的特性return array();可以在各自项目中的配置文件中这样定义: 复制代码 代码如下: $config = array(''=>'',); 然后使用

  • THINKPHP支持YAML配置文件的设置方法

    为什么要用 yaml 因为 Yaml 简单,而且对人类友好: Yaml: http://www.yaml.org/ 在哪里会用到? 最基本的,在 ThinkPHP 的配置文件里面就可以选择 Yaml 的格式,你是愿意写 Yaml 的简洁格式配置呢?还是愿意写又长又臭又难写的 PHP array 呢? http://document.thinkphp.cn/manual_3_2.html#config_format 问题来了 于是,我把配置格式改为 Yaml: 复制代码 代码如下: // /ind

  • thinkphp配置连接数据库技巧

    本文实例讲述了thinkphp配置连接数据库的常用方法,分享给大家供大家参考.具体方法如下: 1.在thinkphp入口文件同目录下的config.inc.php中添加数据库配置信息 复制代码 代码如下: <?php  return array(  'DB_TYPE'=>'mysqli',  'DB_HOST'=>'localhost',  'DB_NAME'=>'demo',  'DB_USER'=>'root',  'DB_PWD'=>'root',  'DB_PR

随机推荐