1.配置類別php
ThinkPHP提供了靈活的全局配置功能,ThinkPHP會依次加載管理配置>項目配置>調試配置>分組配置>擴展配置>動態配置,因此後面的配置權限要大於前面的,由於後面的配置會覆蓋前面同名配置,同事會生辰配置緩存文件無需重複解析,減少開銷。html
<?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、一、二、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', // 數據加密方式 );
<?php return array( //'配置項'=>'配置值' );
2.讀取配置ajax
ThinkPHP使用C方法來讀取配置節點,就是Config的意思,注意配置項的參數不區分大小寫,C('URL_MODEL')和C('url_model')獲得的結果是同樣的,可是仍是建議區分大小寫。配置參數名字不能使用「.」,由於這個是用來讀取二維參數的,若是沒有配置則返回NULL。讀取二維參數值的方法以下:C('USER_CONFIG.USER_TYPE');
數據庫
3.動態配置json
能夠預先寫好配置參數,也能夠在方法中動態設置,也是使用C方法,例如:C('參數名稱','新的參數值');動態配置僅僅對當前請求有效,對其餘的請求無效。注意到動態配置的方法和讀取配置的方法是同樣的,只不過多了一個參數而已。數組
4.擴展配置緩存
擴展配置能夠自動加載額外的自定義配置文件,配置格式和項目配置的格式同樣,設置擴展配置的方式以下:
服務器
// 加載擴展配置文件
'LOAD_EXT_CONFIG' => 'user,db',session