Heim  >  Artikel  >  Backend-Entwicklung  >  Konfiguration in thinkPHP lesen und C-Methode analysieren

Konfiguration in thinkPHP lesen und C-Methode analysieren

不言
不言Original
2018-06-09 14:33:021308Durchsuche

Dieser Artikel stellt hauptsächlich die Lese- und C-Konfigurationsmethode in thinkPHP vor und analysiert die Funktion, den Speicherort, die Gruppierung und die Lesemethode der thinkPHP-Konfigurationsdatei in Form von Beispielen

Die Beispiele in diesem Artikel beschreiben die Lese- und C-Konfigurationsmethoden in thinkPHP. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

1. Öffentliche Konfiguration des Projekts

Conf/config.php

Der Inhalt lautet wie folgt

<?php
/**
 *项目公共配置
 *@package
 *@author
 **/
return array(
 &#39;LOAD_EXT_CONFIG&#39;   => &#39;db,info,email,safe,upfile,cache,route,app,alipay,sms,platform,store,pay&#39;,  
 &#39;APP_AUTOLOAD_PATH&#39;  => &#39;@.ORG&#39;,
 &#39;OUTPUT_ENCODE&#39;   => true,    //页面压缩输出
 &#39;PAGE_NUM&#39;    => 15,
 /*Cookie配置*/
 &#39;COOKIE_PATH&#39;   => &#39;/&#39;,    // Cookie路径
 &#39;COOKIE_PREFIX&#39;   => &#39;&#39;,    // Cookie前缀 避免冲突
 /*定义模版标签*/
 &#39;TMPL_L_DELIM&#39;   =>&#39;{sh:&#39;,   //模板引擎普通标签开始标记
 &#39;TMPL_R_DELIM&#39;   =>&#39;}&#39;,    //模板引擎普通标签结束标记
 &#39;TMPL_CACHE_ON&#39;   => false,   //关闭模板缓存
 &#39;DEFAULT_GROUP&#39;   => &#39;Home&#39;,   //默认访问分组,设置默认入口
 &#39;APP_GROUP_LIST&#39;  => &#39;Agent,Home,System,User,Store,Wap,Mall,Opener&#39;,  // 项目分组设定,多个组之间用逗号分隔,例如&#39;Home,Admin&#39;
 &#39;PUBLIC_RESOURSE&#39;  => &#39;./Public/&#39;,
 &#39;URL_404_REDIRECT&#39;  => &#39;./Tpl/404.html&#39;,
);
?>

'LOAD_EXT_CONFIG' => 'db,info,email,safe,upfile,cache,route,app,alipay,sms,platform, store,pay' Laden bestätigen Zusätzliche Konfigurationen, diese Konfigurationen können über die C()-Methode gelesen werden und sind global gültig.

2. Wenn die Modulgruppierung aktiviert ist, können Sie eine Konfigurationsdatei für jede Gruppe separat definieren. Die Gruppierungskonfigurationsdatei befindet sich unter:

Projektkonfigurationsverzeichnis/-gruppe name/ config.php

&#39;APP_GROUP_LIST&#39; => &#39;Home,Admin&#39;, //项目分组设定
&#39;DEFAULT_GROUP&#39; => &#39;Home&#39;, //默认分组

Definiert nun zwei Gruppen, Home und Admin, dann können wir die Gruppenkonfigurationsdatei wie folgt definieren:

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

Die Konfigurationsdatei jeder Gruppe ist nur in der aktuellen Gruppe gültig. Das Definitionsformat der Gruppenkonfiguration ist das gleiche wie das der Projektkonfiguration.

Hinweis: Beim Gruppennamen wird die Groß-/Kleinschreibung beachtet und er muss mit dem definierten Gruppennamen übereinstimmen.

3. Lesen Sie die Konfiguration

Nachdem Sie die Konfigurationsdatei definiert haben, können Sie die vom System bereitgestellte C-Methode verwenden (wenn Sie sich komisch fühlen, können Sie dies tun). Verwenden Sie das Konfigurationswort, um den Speicher zu unterstützen, um die vorhandene Konfiguration zu lesen

C(&#39;参数名称&#39;)//获取已经设置的参数值

Zum Beispiel kann C('APP_STATUS') den Einstellungswert des Debuggens des Systems lesen Modus: Da bei Konfigurationsparametern die Groß-/Kleinschreibung nicht beachtet wird, ist C('app_status') gleichwertig, es wird jedoch die Konvention in Großbuchstaben empfohlen.

Gibt NULL zurück, wenn APP_STATUS noch nicht existiert.

Die C-Methode kann auch zum Lesen der zweidimensionalen Konfiguration verwendet werden

C(&#39;USER_CONFIG.USER_TYPE&#39;)//获取用户配置中的用户类型设置

Die C-Methode liest die globale Konfiguration und die Konfiguration von das aktuelle Modul.

Wenn kein Parameter vorhanden ist, werden alle gültigen Konfigurationen gelesen.

Wenn derselbe Konfigurationsname vorhanden ist, wird der vorherige Wert überschrieben.

Zum Beispiel:

&#39;HTML_CACHE_TIME&#39; => 60, //静态缓存有效期(秒)
&#39;HTML_CACHE_TIME&#39; => 80,

Das Endergebnis ist 80.

Die Ladereihenfolge richtet sich nach dem Parameter LOAD_EXT_CONFIG

&#39;LOAD_EXT_CONFIG&#39; => &#39;db,info,email,safe,upfile,cache,route,app,alipay,sms,platform,store,pay&#39;

Zum Beispiel gibt es in info einen Parameter HTML_CACHE_TIME, der 60 ist, aber nicht In anderen Konfigurationen wird dieser Parameter gelesen. Wenn er ausgegeben wird, beträgt er 60.

Wenn in der Datenbank auch HTML_CACHE_TIME 50 vorhanden ist, beträgt der Wert immer noch 60. Da die Informationen später gelesen werden, wird HTML_CACHE_TIME in der Datenbank überschrieben.

Angehängt ist der Quellcode der C-Methode

/**
 * 获取和设置配置参数 支持批量定义
 * @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(&#39;c_&#39;.$value)) {
   $_config = array_merge($_config, array_change_key_case($array));
  }
  return $_config;
 }
 // 优先执行设置获取或赋值
 if (is_string($name)) {
  if (!strpos($name, &#39;.&#39;)) {
   $name = strtolower($name);
   if (is_null($value))
    return isset($_config[$name]) ? $_config[$name] : null;
   $_config[$name] = $value;
   return;
  }
  // 二维数组设置和获取支持
  $name = explode(&#39;.&#39;, $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(&#39;c_&#39;.$value,$_config);
  }
  return;
 }
 return null; // 避免非法参数
}

Das Obige ist hoffentlich der gesamte Inhalt dieses Artikels Es wird für alle beim Lernen nützlich sein. Bitte beachten Sie die chinesische PHP-Website für weitere verwandte Inhalte!

Verwandte Empfehlungen:

Analyse der N-Methode von ThinkPHP

Das obige ist der detaillierte Inhalt vonKonfiguration in thinkPHP lesen und C-Methode analysieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn