配置项-thinkphp

thinkphp学习笔记4—眼花缭乱的配置

1.配置类别

ThinkPHP提供了灵活的全局配置功能,ThinkPHP会依次加载管理配置>项目配置>调试配置>分组配置>扩展配置>动态配置,所以后面的配置权限要大于前面的,因为后面的配置会覆盖前面同名配置,同时会生成配置缓存文件无需重复解析,减小开销。

  • 惯例配置:在惯例配置内对大多数常用参数进行默认配置,因为惯例配置最先加载,优先级别最低,如果不需要做特殊配置的话,完全可以保持默认值,惯例配置位于ThinkPHP/Conf/convention.php,内容摘抄如下:

    <?php
    /**
     * ThinkPHP惯例配置文件
     * 该文件请不要修改,如果要覆盖惯例配置的值,可在应用配置文件中设定和惯例不符的配置项
     * 配置名称大小写任意,系统会统一转换成小写
     * 所有配置参数都可以在生效前动态改变
     */
    defined(‘THINK_PATH‘) or exit();
    return  array(
        /* 应用设定 */
        ‘APP_USE_NAMESPACE‘     =>  true,    // 应用类库是否使用命名空间
        ‘APP_SUB_DOMAIN_DEPLOY‘ =>  false,   // 是否开启子域名部署
        ‘APP_SUB_DOMAIN_RULES‘  =>  array(), // 子域名部署规则
        ‘APP_DOMAIN_SUFFIX‘     =>  ‘‘, // 域名后缀 如果是com.cn net.cn 之类的后缀必须设置
        ‘ACTION_SUFFIX‘         =>  ‘‘, // 操作方法后缀
        ‘MULTI_MODULE‘          =>  true, // 是否允许多模块 如果为false 则必须设置 DEFAULT_MODULE
        ‘MODULE_DENY_LIST‘      =>  array(‘Common‘,‘Runtime‘),
        ‘CONTROLLER_LEVEL‘      =>  1,
        ‘APP_AUTOLOAD_LAYER‘    =>  ‘Controller,Model‘, // 自动加载的应用类库层 关闭APP_USE_NAMESPACE后有效
        ‘APP_AUTOLOAD_PATH‘     =>  ‘‘, // 自动加载的路径 关闭APP_USE_NAMESPACE后有效
    
        /* Cookie设置 */
        ‘COOKIE_EXPIRE‘         =>  0,    // Cookie有效期
        ‘COOKIE_DOMAIN‘         =>  ‘‘,      // Cookie有效域名
        ‘COOKIE_PATH‘           =>  ‘/‘,     // Cookie路径
        ‘COOKIE_PREFIX‘         =>  ‘‘,      // Cookie前缀 避免冲突
    
        /* 默认设定 */
        ‘DEFAULT_M_LAYER‘       =>  ‘Model‘, // 默认的模型层名称
        ‘DEFAULT_C_LAYER‘       =>  ‘Controller‘, // 默认的控制器层名称
        ‘DEFAULT_V_LAYER‘       =>  ‘View‘, // 默认的视图层名称
        ‘DEFAULT_LANG‘          =>  ‘zh-cn‘, // 默认语言
        ‘DEFAULT_THEME‘         =>  ‘‘,    // 默认模板主题名称
        ‘DEFAULT_MODULE‘        =>  ‘Home‘,  // 默认模块
        ‘DEFAULT_CONTROLLER‘    =>  ‘Index‘, // 默认控制器名称
        ‘DEFAULT_ACTION‘        =>  ‘index‘, // 默认操作名称
        ‘DEFAULT_CHARSET‘       =>  ‘utf-8‘, // 默认输出编码
        ‘DEFAULT_TIMEZONE‘      =>  ‘PRC‘,    // 默认时区
        ‘DEFAULT_AJAX_RETURN‘   =>  ‘JSON‘,  // 默认AJAX 数据返回格式,可选JSON XML ...
        ‘DEFAULT_JSONP_HANDLER‘ =>  ‘jsonpReturn‘, // 默认JSONP格式返回的处理方法
        ‘DEFAULT_FILTER‘        =>  ‘htmlspecialchars‘, // 默认参数过滤方法 用于I函数...
    
        /* 数据库设置 */
        ‘DB_TYPE‘               =>  ‘‘,     // 数据库类型
        ‘DB_HOST‘               =>  ‘‘, // 服务器地址
        ‘DB_NAME‘               =>  ‘‘,          // 数据库名
        ‘DB_USER‘               =>  ‘‘,      // 用户名
        ‘DB_PWD‘                =>  ‘‘,          // 密码
        ‘DB_PORT‘               =>  ‘‘,        // 端口
        ‘DB_PREFIX‘             =>  ‘‘,    // 数据库表前缀
        ‘DB_FIELDTYPE_CHECK‘    =>  false,       // 是否进行字段类型检查
        ‘DB_FIELDS_CACHE‘       =>  true,        // 启用字段缓存
        ‘DB_CHARSET‘            =>  ‘utf8‘,      // 数据库编码默认采用utf8
        ‘DB_DEPLOY_TYPE‘        =>  0, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
        ‘DB_RW_SEPARATE‘        =>  false,       // 数据库读写是否分离 主从式有效
        ‘DB_MASTER_NUM‘         =>  1, // 读写分离后 主服务器数量
        ‘DB_SLAVE_NO‘           =>  ‘‘, // 指定从服务器序号
        ‘DB_SQL_BUILD_CACHE‘    =>  false, // 数据库查询的SQL创建缓存
        ‘DB_SQL_BUILD_QUEUE‘    =>  ‘file‘,   // SQL缓存队列的缓存方式 支持 file xcache和apc
        ‘DB_SQL_BUILD_LENGTH‘   =>  20, // SQL缓存的队列长度
        ‘DB_SQL_LOG‘            =>  false, // SQL执行日志记录
        ‘DB_BIND_PARAM‘         =>  false, // 数据库写入数据自动参数绑定
    
        /* 数据缓存设置 */
        ‘DATA_CACHE_TIME‘       =>  0,      // 数据缓存有效期 0表示永久缓存
        ‘DATA_CACHE_COMPRESS‘   =>  false,   // 数据缓存是否压缩缓存
        ‘DATA_CACHE_CHECK‘      =>  false,   // 数据缓存是否校验缓存
        ‘DATA_CACHE_PREFIX‘     =>  ‘‘,     // 缓存前缀
        ‘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‘            =>  ‘‘,    // 错误定向页面
        ‘SHOW_ERROR_MSG‘        =>  false,    // 显示错误信息
        ‘TRACE_MAX_RECORD‘      =>  100,    // 每个级别的错误信息 最大记录数
    
        /* 日志设置 */
        ‘LOG_RECORD‘            =>  false,   // 默认不记录日志
        ‘LOG_TYPE‘              =>  ‘File‘, // 日志记录类型 默认为文件方式
        ‘LOG_LEVEL‘             =>  ‘EMERG,ALERT,CRIT,ERR‘,// 允许记录的日志级别
        ‘LOG_FILE_SIZE‘         =>  2097152,    // 日志文件大小限制
        ‘LOG_EXCEPTION_RECORD‘  =>  false,    // 是否记录异常信息日志
    
        /* SESSION设置 */
        ‘SESSION_AUTO_START‘    =>  true,    // 是否自动开启Session
        ‘SESSION_OPTIONS‘       =>  array(), // session 配置数组 支持type name id path expire domain 等参数
        ‘SESSION_TYPE‘          =>  ‘‘, // session hander类型 默认无需设置 除非扩展了session hander驱动
        ‘SESSION_PREFIX‘        =>  ‘‘, // session 前缀
        //‘VAR_SESSION_ID‘      =>  ‘session_id‘,     //sessionID的提交变量
    
        /* 模板引擎设置 */
        ‘TMPL_CONTENT_TYPE‘     =>  ‘text/html‘, // 默认模板输出类型
        ‘TMPL_ACTION_ERROR‘     =>  THINK_PATH.‘Tpl/dispatch_jump.tpl‘, // 默认错误跳转对应的模板文件
        ‘TMPL_ACTION_SUCCESS‘   =>  THINK_PATH.‘Tpl/dispatch_jump.tpl‘, // 默认成功跳转对应的模板文件
        ‘TMPL_EXCEPTION_FILE‘   =>  THINK_PATH.‘Tpl/think_exception.tpl‘,// 异常页面的模板文件
        ‘TMPL_DETECT_THEME‘     =>  false,       // 自动侦测模板主题
        ‘TMPL_TEMPLATE_SUFFIX‘  =>  ‘.html‘,     // 默认模板文件后缀
        ‘TMPL_FILE_DEPR‘        =>  ‘/‘, //模板文件CONTROLLER_NAME与ACTION_NAME之间的分割符
        // 布局设置
        ‘TMPL_ENGINE_TYPE‘      =>  ‘Think‘,     // 默认模板引擎 以下设置仅对使用Think模板引擎有效
        ‘TMPL_CACHFILE_SUFFIX‘  =>  ‘.php‘,      // 默认模板缓存后缀
        ‘TMPL_DENY_FUNC_LIST‘   =>  ‘echo,exit‘,    // 模板引擎禁用函数
        ‘TMPL_DENY_PHP‘         =>  false, // 默认模板引擎是否禁用PHP原生代码
        ‘TMPL_L_DELIM‘          =>  ‘{‘,            // 模板引擎普通标签开始标记
        ‘TMPL_R_DELIM‘          =>  ‘}‘,            // 模板引擎普通标签结束标记
        ‘TMPL_VAR_IDENTIFY‘     =>  ‘array‘,     // 模板变量识别。留空自动判断,参数为‘obj‘则表示对象
        ‘TMPL_STRIP_SPACE‘      =>  true,       // 是否去除模板文件里面的html空格与换行
        ‘TMPL_CACHE_ON‘         =>  true,        // 是否开启模板编译缓存,设为false则每次都会重新编译
        ‘TMPL_CACHE_PREFIX‘     =>  ‘‘,         // 模板缓存前缀标识,可以动态改变
        ‘TMPL_CACHE_TIME‘       =>  0,         // 模板缓存有效期 0 为永久,(以数字为值,单位:秒)
        ‘TMPL_LAYOUT_ITEM‘      =>  ‘{__CONTENT__}‘, // 布局模板的内容替换标识
        ‘LAYOUT_ON‘             =>  false, // 是否启用布局
        ‘LAYOUT_NAME‘           =>  ‘layout‘, // 当前布局名称 默认为layout
    
        // Think模板引擎标签库相关设定
        ‘TAGLIB_BEGIN‘          =>  ‘<‘,  // 标签库标签开始标记
        ‘TAGLIB_END‘            =>  ‘>‘,  // 标签库标签结束标记
        ‘TAGLIB_LOAD‘           =>  true, // 是否使用内置标签库之外的其它标签库,默认自动检测
        ‘TAGLIB_BUILD_IN‘       =>  ‘cx‘, // 内置标签库名称(标签使用不必指定标签库名称),以逗号分隔 注意解析顺序
        ‘TAGLIB_PRE_LOAD‘       =>  ‘‘,   // 需要额外加载的标签库(须指定标签库名称),多个以逗号分隔 
    
        /* URL设置 */
        ‘URL_CASE_INSENSITIVE‘  =>  true,   // 默认false 表示URL区分大小写 true则表示不区分大小写
        ‘URL_MODEL‘             =>  1,       // URL访问模式,可选参数0、1、2、3,代表以下四种模式:
        // 0 (普通模式); 1 (PATHINFO 模式); 2 (REWRITE  模式); 3 (兼容模式)  默认为PATHINFO 模式
        ‘URL_PATHINFO_DEPR‘     =>  ‘/‘,    // PATHINFO模式下,各参数之间的分割符号
        ‘URL_PATHINFO_FETCH‘    =>  ‘ORIG_PATH_INFO,REDIRECT_PATH_INFO,REDIRECT_URL‘, // 用于兼容判断PATH_INFO 参数的SERVER替代变量列表
        ‘URL_REQUEST_URI‘       =>  ‘REQUEST_URI‘, // 获取当前页面地址的系统变量 默认为REQUEST_URI
        ‘URL_HTML_SUFFIX‘       =>  ‘html‘,  // URL伪静态后缀设置
        ‘URL_DENY_SUFFIX‘       =>  ‘ico|png|gif|jpg‘, // URL禁止访问的后缀设置
        ‘URL_PARAMS_BIND‘       =>  true, // URL变量绑定到Action方法参数
        ‘URL_PARAMS_BIND_TYPE‘  =>  0, // URL变量绑定的类型 0 按变量名绑定 1 按变量顺序绑定
        ‘URL_404_REDIRECT‘      =>  ‘‘, // 404 跳转页面 部署模式有效
        ‘URL_ROUTER_ON‘         =>  false,   // 是否开启URL路由
        ‘URL_ROUTE_RULES‘       =>  array(), // 默认路由规则 针对模块
        ‘URL_MAP_RULES‘         =>  array(), // URL映射定义规则
    
        /* 系统变量名称设置 */
        ‘VAR_MODULE‘            =>  ‘m‘,     // 默认模块获取变量
        ‘VAR_CONTROLLER‘        =>  ‘c‘,    // 默认控制器获取变量
        ‘VAR_ACTION‘            =>  ‘a‘,    // 默认操作获取变量
        ‘VAR_AJAX_SUBMIT‘       =>  ‘ajax‘,  // 默认的AJAX提交变量
        ‘VAR_JSONP_HANDLER‘     =>  ‘callback‘,
        ‘VAR_PATHINFO‘          =>  ‘s‘,    // 兼容模式PATHINFO获取变量例如 ?s=/module/action/id/1 后面的参数取决于URL_PATHINFO_DEPR
        ‘VAR_TEMPLATE‘          =>  ‘t‘,    // 默认模板切换变量
    
        ‘HTTP_CACHE_CONTROL‘    =>  ‘private‘,  // 网页缓存控制
        ‘CHECK_APP_DIR‘         =>  true,       // 是否检查应用目录是否创建
        ‘FILE_UPLOAD_TYPE‘      =>  ‘Local‘,    // 文件上传方式
        ‘DATA_CRYPT_TYPE‘       =>  ‘Think‘,    // 数据加密方式
    
    );
  • 应用配置:调用所有模块之前加载的公共配置文件,位于Application/Common/Conf/config.php,注意如果修改公共模块的名称,公共配置文件的位置也要相应改变,应用配置里没有什么内容,需要自己添加,如下:

    <?php
    return array(
        //‘配置项‘=>‘配置值‘
    );
  • 模式配置:如果使用普通应用模式之外的应用模式,可以为应用模式单独添加配置文件,文件存放的位置和命名规则如下:Application/Common/Conf/config_应用模式名称.php,注意模式配置仅仅在运行模式下才会加载
  • 调试配置:如果开启调试模式的话,则会自动加载框架的调试配置文件和应用调试配置文件,他们的位置分别位于ThinkPHP/Conf/debug.php,Application/Common/Conf/debug.php
  • 状态配置:每个应用可以在不同的情况下设置自己的状态,也可称之为应用场景,如果我们要区分开发环境和测试环境,在入口文件中定义define(‘APP_STATUS‘,‘development‘);那么会加载对应的配置文件Application/Common/Conf/development.php,如果在入口文件中修改为define(‘APP_STATUS‘,‘test‘);那么会加载对应的配置文件Application/Common/Conf/test.php
  • 模块配置:每个模块会加载自己的配置文件,和模块放在相同目录下,例如:Application/当前模块名/Conf/config.php,如果使用了普通模式之外的其他应用模式,还可以为应用模式单独定义配置文件,名称和存放目录如:Application/当前模块名/Conf/config_应用模式名称.php,注意这个仅在运行模式下才会加载,模块配置文件是可选的。

    如果应用的配置文件比较大,想分成几个单独的配置文件或者加载额外的配置文件可以使用扩展配置和动态配置。

2.读取配置

ThinkPHP使用C方法来读取配置节点,就是Config的意思,注意配置项的参数不区分大小写,C(‘URL_MODEL‘)和C(‘url_model‘)得到的结果是一样的,但是还是建议区分大小写。配置参数名字不能使用“.”,因为这个是用来读取二维参数的,如果没有配置则返回NULL。读取二维参数值的方法如下:C(‘USER_CONFIG.USER_TYPE‘);

3.动态配置

可以预先写好配置参数,也可以在方法中动态设置,也是使用C方法,例如:C(‘参数名称‘,‘新的参数值‘);动态配置仅仅对当前请求有效,对其他的请求无效。注意到动态配置的方法和读取配置的方法是一样的,只不过多了一个参数而已。

4.扩展配置

扩展配置可以自动加载额外的自定义配置文件,配置格式和项目配置的格式一样,设置扩展配置的方式如下:

// 加载扩展配置文件
‘LOAD_EXT_CONFIG‘ => ‘user,db‘,

配置项-thinkphp

时间: 2024-08-28 19:40:09

配置项-thinkphp的相关文章

ThinkPHP配置项(六)

原文:ThinkPHP配置项(六) 配置项--这只是部分的配置,后期会随时跟大家更新分享 1:修改URL分隔符 目录:thinkphp\Home\Conf\config.php打开配置文件代码中加上: 'URL_PATHINFO_DEPR' => '_',  //将访问的分隔符改成由 "/"  => "-"  注意如果改后没有效果的话就把Runtime删除 http://localhost/thinkphp/index.php/Index-index '

thinkphp常用Config.php配置项

<?php return array( //'配置项'=>'配置值' 'DB_HOST' => 'localhost', 'DB_USER' => 'root', 'DB_PWD' => '', 'DB_NAME' => 'think', 'DB_PREFIX' => 'hd_',//表前缀 'URL_MODEL' => 1, // 为0时:/index.php?m=Index&a=index 值为2时 Rewright 重写没有了前面的index.

ThinkPHP讲解(一)框架基础

ThinkPHP框架知识点过于杂乱,接下来将以问题的形势讲解tp(ThinkPHP的简写) 1.tp框架是什么,为什么使用是它? 一堆代码的集合,里边有变量.函数.类.常量,里边也有许多设计模式MVC.AR数据库.单例等等.框架可以节省我们50-60%的工作量,我们全部精力都集中在业务层次. 为什么使用框架 框架可以帮组我们快速.稳定.高效搭建程序系统 该系统由于框架的使用使得本身的维护性.灵活性.适应客户需求方面得到最大化的增强. 使用框架的过程中可以使得我们的注意力全部集中业务层面,而无需关

ThinkPHP 3.2.3 简单后台模块开发(一)常用配置

一.项目分组 下载解压 ThinkPHP 3.2.3,在默认的应用 Application(./Application) 中,包含一个默认的模块 Home(./Application/Home). 需要在该默认应用中创建一个用于后台管理的 Admin 模块,可以通过在应用入口文件(./index.php)中绑定 Admin 模块来 自动生成 Admin 模块: define('BIND_MODULE','Admin'); 此时访问 http://serverName/index.php 便会自动

ThinkPHP 3.2.3 自动加载公共函数文件的方法

方法一.加载默认的公共函数文件 在 ThinkPHP 3.2.3 中,默认的公共函数文件位于公共模块 ./Application/Common 下,访问所有的模块之前都会首先加载公共模块下面的配置文件(Conf/config.php)和公共函数文件(Common/function.php),即默认的公共函数文件为 ./Application/Common/Common/function.php. 例如,在 ./Application/Common/Common 下新建 function.php,

thinkphp多语言设置

转自:http://www.cnblogs.com/yuwensong/p/4156383.html 1.将CheckLangBehavior.class.php(没有的话去下载完整版)文件放到此目录下:\ThinkPHP\Extend\Behavior 2.修改目录下文件Application\Home\Conf\tags.php(没有此文件的话自己添加)添加配置: return array(            'app_begin' => array('Behavior\CheckLan

ThinkPHP整合支付宝即时到账接口调用

首先是在支付宝的蚂蚁金服开放平台下载PHP的demo: 1 https://doc.open.alipay.com/doc2/detail?treeId=62&articleId=103566&docType=1 下载地址如上,里面有个MD5加密方式UTF8的PHP的demo可以拿来用,可以直接在localhost上跑,传入合适的参数即使体验支付一次,这点和微信支付接口调用的demo相同. 现在我们尝试将其中demo的lib类文件整合到thinkphp之中去. 将四个lib改名放入Vend

ThinkPHP之初识

ThinkPHP 轻量级框架,国人框架,入门容易 thinkphp 3.2版本 'URL_CASE_INSENSITIVE'  =>  true,   // 默认false 表示URL区分大小写 true则表示不区分大小写,这句有BUG 解压tp打开可以看到下图: 其中ThinkPHP是核心,index.php是入口文件 点开ThinkPHP如下图: 点开Conf可以看到下图: convention.php是核心配置文件,基本上所有的配置都在其中. library是核心资源库,library中的

ThinkPHP使用Memcached缓存数据

ThinkPHP默认使用文件缓存数据,支持Memcache等其他缓存方式,有两个PHP扩展:Memcache和Memcached,Memcahe官方有说明,主要说一下Memcached. 相对于PHP Memcache,php Memcached是基于原生的c的libmemcached的扩展,更加完善,建议替换为php memcached. 版本3.2.2开始内置了Memcached驱动(ThinkPHP/Library/Think/Cache/Driver/Memcached.class.ph