欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ThinkPHP惯例配置文件详解

程序员文章站 2023-11-02 23:27:39
thinkphp的系统内置有一个惯例配置文件(位于系统目录下面的conf\convention.php),按照大多数的使用对常用参数进行了默认配置。本文对惯例配置文件作出注...

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

);

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