ThinkPHP 项目配置
项目配置是项目开发中最常用的配置,配置文件为:项目目录/Conf/config.php。我们将一些项目配置信息如数据库账号密码等写入配置文件以供系统调用。
一个项目配置样例如下:
<?php if (!defined('THINK_PATH')) exit(); return array( 'DB_TYPE' => 'mysql', // 使用的数据库类型 'DB_HOST' => 'localhost', 'DB_NAME' => 'test', // 数据库名 'DB_USER' => 'root', // 数据库账号 'DB_PWD' => 'root123', // 数据库密码 'DB_PORT' => '3306', 'DB_PREFIX' => 'dev_', // 表前缀 'TOKEN_ON' => false, // 是否开启令牌验证 'URL_MODEL' => 2, // URL模式:0普通模式 1PATHINFO 2REWRITE 3兼容模式 'SHOW_PAGE_TRACE' => true, // 是否显示调试跟踪信息 'DEFAULT_THEME' => 'default', // 默认模板主题 'URL_HTML_SUFFIX' => '.html', // 伪静态后缀 'URL_ROUTER_ON' => true, // 是否开启路由 'APP_GROUP_LIST' => 'Home,Admin', // 分组设置 'DEFAULT_GROUP' => 'Home', // 默认分组 /* 网站设置 */ 'SITE_NAME' => '我爱开发网', // 站点名字 'DOMAIN_NAME' => '5idev.com', // 域名 'NO_ARTICLE_VIEW' => '抱歉:您请求的文章不存在,系统已记录该错误。请继续访问本站其他内容。', ); ?>
配置信息说明
- DB_PREFIX:如果没有前缀,该项配置为空即可:
'DB_PREFIX' =>'',
- TOKEN_ON:令牌验证配置为 true ,在表单提交时系统会自动生成一个 MD5 验证令牌用于防止非法表单提交。
- URL_MODEL:根据需要配置 URL 访问模式,如果环境不支持 PATHINFO 则设置为 3 以适应。
- APP_GROUP_LIST 及 DEFAULT_GROUP 用于项目分组,具体可参见《ThinkPHP 项目分组》。
提示
- 在调试模式下,如果更改了配置选项,需要删除 Runtime 下面的缓存文件以使配置选项生效。
- ThinkPHP 3.0 已经将调试模式开关从配置文件移动至入口文件,具体参见《ThinkPHP 项目构建及入口文件》或《ThinkPHP 调试模式》
其他配置选项
下面列出了其他一些可能在项目中用得到的配置选项供参考:
'URL_PATHINFO_DEPR' => '/', //PATHINFO URL 模式下,各参数之间的分割符号 'DEFAULT_CHARSET' => 'utf-8', // 默认输出编码 'DEFAULT_TIMEZONE' => 'PRC', // 默认时区 'DEFAULT_AJAX_RETURN' => 'JSON', // 默认AJAX 数据返回格式,可选JSON XML ... /* Cookie设置 */ 'COOKIE_EXPIRE' => 3600, // Coodie有效期 'COOKIE_DOMAIN' => '', // Cookie有效域名 'COOKIE_PATH' => '/', // Cookie路径 'COOKIE_PREFIX' => '', // Cookie前缀 避免冲突 /* 静态缓存设置 */ 'HTML_CACHE_ON' => false, //默认关闭静态缓存 'HTML_CACHE_TIME' => 60, //静态缓存有效期 'HTML_READ_TYPE' => 0, //静态缓存读取方式 0 readfile 1 redirect 'HTML_FILE_SUFFIX' => '.shtml', //默认静态文件后缀 /* 错误设置 */ 'ERROR_MESSAGE' => '您浏览的页面暂时发生了错误!请稍后再试~', //错误显示信息,非调试模式有效 'ERROR_PAGE' => '', // 错误定向页面
个性化配置
以上参数配置是基于 ThinkPHP 的系统配置参数,在项目建设过程中,有时候会有自己的个性化配置参数,个性化配置参数也可以写入配置文件里:
/* 网站设置 */ 'SITE_NAME' => '我爱开发网', // 站点名字
表前缀
数据表前缀往往用于区分同一个数据库内的不同系统的表。如安装了论坛,博客或者其他应用等不同的系统板块,则为了区分表所属系统,往往加上前缀以区分。定义了表前缀之后,在模块操作里操作数据表的时候,可不用再写表前缀。
惯例配置与项目配置
在前文已经描述过,项目配置优于惯例配置,项目配置的配置选项会覆盖惯例配置内的同名选项。