最新消息: 新版网站上线了!!!

ThinkPHP 系统配置

ThinkPHP 配置简介

ThinkPHP提供了灵活的配置功能,采用最有效率的 PHP 返回数组方式定义方式。系统支持惯例配置项目配置分组配置、调试配置和动态配置等 5 种配置模式。

以上各种配置模式,采用了分层模式,层次体现在:惯例配置->项目配置->调试配置->分组配置->扩展配置->动态配置。这个层次的意思是,后面配置的选项会覆盖前面同名的配置选项,即优先顺序从右到左。这样,我们就可以在保证基本配置的同时,灵活更改或增加个性配置。

配置格式

ThinkPHP 中所有配置文件的定义格式均采用返回 PHP 数组的方式,一个配置样例如下:

<?php
return array(
    //'配置项'   => '配置值'
    'DB_TYPE'    => 'mysql',	    //使用的数据库类型
    'DB_HOST'    => 'localhost',
    'SITE_CONF'  => array(
        'SITE_NAME'    => '我爱开发网',
	'DOMAIN_NAME'  => '5idev.com',
    ),
    // 更多其他配置
);
?>

在配置上,建议保持大写定义配置参数的规范,尽管大小写都是允许的。ThinkPHP 目前能支持二维数组的配置级别,如上面的例子所示。

惯例配置

惯例配置是指 ThinkPHP 内置的一个配置文件,具体对应 ThinkPHP 系统目录下面的 Confconvention.php 文件。在这个文件里,对系统所需要的大多数参数进行了默认配置。

该配置文件配置的参数比较多,大家可以自行打开了解一下。下面摘取几个比较重要的配置参数说明一下:

/* 项目设定 */
'APP_STATUS'            => 'debug',  // 应用调试模式状态
'APP_SUB_DOMAIN_DEPLOY' => false,    // 是否开启子域名部署

说明:

  • APP_STATUS:应用调试模式状态,调试模式开启后有效,具体参考《ThinkPHP 调试模式》一节
  • APP_SUB_DOMAIN_DEPLOY:项目分组开启子域名部署,请设置为 true
/* Cookie 设置 */
'COOKIE_EXPIRE'         => 3600,    // Cookie有效期
'COOKIE_DOMAIN'         => '',      // Cookie有效域名
'COOKIE_PATH'           => '/',     // Cookie路径
'COOKIE_PREFIX'         => '',      // Cookie前缀 避免冲突

说明:上面是关于 Cookie 的一些设定。

/* 默认设定 */
'DEFAULT_LANG'          => 'zh-cn', // 默认语言
'DEFAULT_GROUP'         => 'Home',  // 默认分组
'DEFAULT_MODULE'        => 'Index', // 默认模块名称
'DEFAULT_ACTION'        => 'index', // 默认操作名称
'DEFAULT_AJAX_RETURN'   => 'JSON',  // 默认AJAX 数据返回格式,可选JSON XML ...
'DEFAULT_FILTER'        => 'htmlspecialchars', // 默认参数过滤方法 用于 $this->_get|_post('变量名');...

说明:

  • DEFAULT_FILTER:当参数过滤方法为自定义方法时,请更改本参数并将对应的函数写入项目函数库,具体参见《ThinkPHP 项目函数》
/* 数据库设置 */
'DB_TYPE'               => 'mysql',     // 数据库类型
'DB_NAME'               => '',          // 数据库名
'DB_USER'               => 'root',      // 用户名
'DB_PWD'                => '',          // 密码
'DB_PORT'               => '',          // 端口
'DB_PREFIX'             => 'think_',    // 数据库表前缀
'DB_CHARSET'            => 'utf8',      // 数据库编码默认采用utf8
'DB_MASTER_NUM'         => 1,           // 读写分离后,主服务器数量

说明:以上配置参数请根据实际情况在项目配置文件里面进行配置,具体参见《ThinkPHP 项目配置》。

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

以上是当产生系统错误是的系统提示信息和对应的页面。在实际应用中,要分两种情况来讨论:

第一种情况也是最常见的情况,就是 URL 地址错误。如果系统设定了隐藏 index.php,错误的 URL 地址会被 ThinkPHP 接管,实际的结果是模块或操作不存在。这种情况的处理,通常会设定空模块与空操作,将访问者引导至友好的 404 页面。

另一种情况是由于其他原因,导致 ThinkPHP 抛出了异常,这时候就会获取上面的配置,重定向至错误页面并输出错误信息。

/* SESSION设置 */
'SESSION_AUTO_START'    => true,    // 是否自动开启Session

系统默认开启 Session,如果无需开启请在项目配置里面设置为 false。

/* 模板引擎设置 */
'TMPL_CONTENT_TYPE'     => 'text/html', // 默认模板输出类型
'TMPL_TEMPLATE_SUFFIX'  => '.html',     // 默认模板文件后缀
'TMPL_FILE_DEPR'=>'/',                  //模板文件模块与操作之间的分割符,只对项目分组部署有效

上面是跟模板有关的设置,通常不用更改。

/* URL设置 */
'URL_CASE_INSENSITIVE'  => false,       // 默认false 表示URL区分大小写 true则表示不区分大小写
'URL_MODEL'             => 1,           // URL访问模式,可选参数0、1、2、3,代表四种模式
'URL_HTML_SUFFIX'       => '',          // URL伪静态后缀设置

说明:

  • URL_MODELS:URL访问模式
  • URL_HTML_SUFFIX:URL伪静态后缀,如 html,shtml 等
/* 系统变量名称设置 */
'VAR_GROUP'             => 'g',      // 默认分组获取变量
'VAR_MODULE'            => 'm',	     // 默认模块获取变量
'VAR_ACTION'            => 'a',	     // 默认操作获取变量

URL 中获取分组、模块和操作的变量,类似 m=user&a=read 这样的 URL,ThinkPHP 会将 user 设定为模块,a 设定为操作,因此我们在项目开发中,应该避免使用 m 参数与 a 参数。

提示

对于惯例配置,一般情况下不要去做修改,而是将需要变更的配置在项目配置里进行重新定义。由于项目配置优于惯例配置,会将惯例配置里同名的配置信息覆盖掉。

转载请注明:谷谷点程序 » ThinkPHP 系统配置