中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

thinkPHP中配置的讀取與C方法的示例分析

發布時間:2021-09-05 13:37:25 來源:億速云 閱讀:148 作者:小新 欄目:開發技術

小編給大家分享一下thinkPHP中配置的讀取與C方法的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

具體如下:

1.項目公共配置

Conf/config.php

內容如下

<?php
/**
 *項目公共配置
 *@package
 *@author
 **/
return array(
 'LOAD_EXT_CONFIG'   => 'db,info,email,safe,upfile,cache,route,app,alipay,sms,platform,store,pay',  
 'APP_AUTOLOAD_PATH'  => '@.ORG',
 'OUTPUT_ENCODE'   => true,    //頁面壓縮輸出
 'PAGE_NUM'    => 15,
 /*Cookie配置*/
 'COOKIE_PATH'   => '/',    // Cookie路徑
 'COOKIE_PREFIX'   => '',    // Cookie前綴 避免沖突
 /*定義模版標簽*/
 'TMPL_L_DELIM'   =>'{sh:',   //模板引擎普通標簽開始標記
 'TMPL_R_DELIM'   =>'}',    //模板引擎普通標簽結束標記
 'TMPL_CACHE_ON'   => false,   //關閉模板緩存
 'DEFAULT_GROUP'   => 'Home',   //默認訪問分組,設置默認入口
 'APP_GROUP_LIST'  => 'Agent,Home,System,User,Store,Wap,Mall,Opener',  // 項目分組設定,多個組之間用逗號分隔,例如'Home,Admin'
 'PUBLIC_RESOURSE'  => './Public/',
 'URL_404_REDIRECT'  => './Tpl/404.html',
);
?>

'LOAD_EXT_CONFIG' => 'db,info,email,safe,upfile,cache,route,app,alipay,sms,platform,store,pay' 確定加載的額外的配置,這些配置都可以通過C()方法讀取,全局有效。

2.如果啟用了模塊分組,則可以在對每個分組單獨定義配置文件,分組配置文件位于:

項目配置目錄/分組名稱/config.php

'APP_GROUP_LIST' => 'Home,Admin', //項目分組設定
'DEFAULT_GROUP' => 'Home', //默認分組

現在定義了Home和Admin兩個分組,則我們可以定義分組配置文件如下:

Conf/Home/config.php
Conf/Admin/config.php

每個分組的配置文件僅在當前分組有效,分組配置的定義格式和項目配置是一樣的。

注意:分組名稱區分大小寫,必須和定義的分組名一致。

3.讀取配置

定義了配置文件之后,可以使用系統提供的C方法(如果覺得比較奇怪的話,可以借助Config單詞來幫助記憶)來讀取已有的配置

C('參數名稱')//獲取已經設置的參數值

例如,C('APP_STATUS') 可以讀取到系統的調試模式的設置值,同樣,由于配置參數不區分大小寫,因此C('app_status')是等效的,但是建議使用大寫方式的規范。

如果APP_STATUS尚未存在設置,則返回NULL。

C方法同樣可以用于讀取二維配置

C('USER_CONFIG.USER_TYPE')//獲取用戶配置中的用戶類型設置

C方法讀取全局配置,以及當前模塊的配置。

參數沒有的話,將讀取全部的有效配置。

如果存在相同的配置名,前面的值將被覆蓋。

例如:

'HTML_CACHE_TIME' => 60, //靜態緩存有效期(秒)
'HTML_CACHE_TIME' => 80,

最終獲取的是80。

加載順序依照參數LOAD_EXT_CONFIG

'LOAD_EXT_CONFIG' => 'db,info,email,safe,upfile,cache,route,app,alipay,sms,platform,store,pay'

比如info中有個參數HTML_CACHE_TIME 為60 ,其余配置中沒有,那么這個參數讀取出來就是60。

如果db中也有HTML_CACHE_TIME為50,那么值還是60。因為info是后讀取的,把db中的HTML_CACHE_TIME覆蓋掉了。

附上C方法源碼

/**
 * 獲取和設置配置參數 支持批量定義
 * @param string|array $name 配置變量
 * @param mixed $value 配置值
 * @return mixed
 */
function C($name=null, $value=null) {
 static $_config = array();
 // 無參數時獲取所有
 if (empty($name)) {
  if(!empty($value) && $array = cache('c_'.$value)) {
   $_config = array_merge($_config, array_change_key_case($array));
  }
  return $_config;
 }
 // 優先執行設置獲取或賦值
 if (is_string($name)) {
  if (!strpos($name, '.')) {
   $name = strtolower($name);
   if (is_null($value))
    return isset($_config[$name]) ? $_config[$name] : null;
   $_config[$name] = $value;
   return;
  }
  // 二維數組設置和獲取支持
  $name = explode('.', $name);
  $name[0] = strtolower($name[0]);
  if (is_null($value))
   return isset($_config[$name[0]][$name[1]]) ? $_config[$name[0]][$name[1]] : null;
  $_config[$name[0]][$name[1]] = $value;
  return;
 }
 // 批量設置
 if (is_array($name)){
  $_config = array_merge($_config, array_change_key_case($name));
  if(!empty($value)) {// 保存配置值
   cache('c_'.$value,$_config);
  }
  return;
 }
 return null; // 避免非法參數
}

以上是“thinkPHP中配置的讀取與C方法的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

讷河市| 达拉特旗| 广州市| 新郑市| 龙岩市| 泸定县| 大丰市| 辽宁省| 沅陵县| 手游| 临清市| 盐津县| 奉新县| 那坡县| 青海省| 芦溪县| 阳江市| 凤凰县| 横峰县| 定陶县| 莱西市| 福鼎市| 扬中市| 迁西县| 尖扎县| 荆州市| 澳门| 定结县| 通江县| 濮阳市| 寿阳县| 威宁| 闽清县| 葵青区| 鹤峰县| 峨边| 山东省| 宜宾县| 白沙| 石狮市| 钟山县|