Heim > php教程 > PHP开发 > Detaillierte Erläuterung des Konfigurationslesens und der C-Methoden in thinkPHP

Detaillierte Erläuterung des Konfigurationslesens und der C-Methoden in thinkPHP

高洛峰
Freigeben: 2016-12-30 09:35:33
Original
1384 Leute haben es durchsucht

Das Beispiel in diesem Artikel beschreibt 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 ist 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;,
);
?>
Nach dem Login kopieren

'LOAD_EXT_CONFIG' => 'db,info,email,safe,upfile,cache,route,app,alipay,sms,platform,store,pay' bestimmt die zusätzlich zu ladende Konfiguration, diese Konfigurationen können über die C()-Methode gelesen werden und sind global gültig.

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

Projektkonfigurationsverzeichnis/Gruppenname/config.php

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

Nachdem nun die Home- und Admin-Gruppen definiert sind, können wir die Gruppenkonfigurationsdatei wie folgt definieren:

Conf/Home/config.php
Conf/Admin/config.php
Nach dem Login kopieren

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

Hinweis: Bei Gruppennamen wird die Groß-/Kleinschreibung beachtet und sie müssen 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 das Gefühl haben, dass es seltsam ist, können Sie das Wort Config verwenden, um sich daran zu erinnern ), um die vorhandene Konfigurationsdatei zu lesen.

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

Beispielsweise kann C('APP_STATUS') den Einstellungswert des Debug-Modus des Systems lesen. Da in den Konfigurationsparametern nicht zwischen Groß- und Kleinschreibung unterschieden wird, ist C('app_status') gleichwertig, es wird jedoch die Konvention in Großschreibung empfohlen.

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

C-Methode kann auch zum Lesen zweidimensionaler Konfigurationen verwendet werden

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

C-Methode liest globale Konfiguration und die Konfiguration des Stroms 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,
Nach dem Login kopieren

Das Endergebnis ist 80.

Die Ladesequenz basiert auf 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;
Nach dem Login kopieren

Zum Beispiel, wenn es einen Parameter HTML_CACHE_TIME in Info gibt, der 60 ist , aber nicht in anderen Konfigurationen, dann wird dieser Parameter als 60 angezeigt.

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.

Im Anhang finden Sie den 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; // 避免非法参数
}
Nach dem Login kopieren

Ich hoffe, dass dieser Artikel für alle auf ThinkPHP basierenden PHP-Programmdesigns hilfreich sein wird Rahmen.

Ausführlichere Erläuterungen zu den in thinkPHP konfigurierten Lese- und C-Methoden finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage