Maison > php教程 > PHP开发 > le corps du texte

Explication détaillée de la lecture de la configuration et des méthodes C dans thinkPHP

高洛峰
Libérer: 2016-12-30 09:35:33
original
1363 Les gens l'ont consulté

L'exemple de cet article décrit les méthodes de lecture et de configuration C dans thinkPHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

1. Configuration publique du projet

Conf/config.php

Le contenu est le suivant

<?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;,
);
?>
Copier après la connexion

'LOAD_EXT_CONFIG' => 'db,info,email,safe,upfile,cache,route,app,alipay,sms,platform,store,pay' détermine la configuration supplémentaire à charger, ces configurations peuvent être lues via la méthode C() et sont globalement valides.

2. Si le regroupement de modules est activé, vous pouvez définir un fichier de configuration pour chaque groupe séparément. Le fichier de configuration de regroupement se trouve dans :

Répertoire de configuration du projet/nom du groupe/config.php<. 🎜>

&#39;APP_GROUP_LIST&#39; => &#39;Home,Admin&#39;, //项目分组设定
&#39;DEFAULT_GROUP&#39; => &#39;Home&#39;, //默认分组
Copier après la connexion

Maintenant que les groupes Accueil et Admin sont définis, nous pouvons définir le fichier de configuration du groupe comme suit :

Conf/Home/config.php
Conf/Admin/config.php
Copier après la connexion

Le fichier de configuration de chaque groupe n'est valable que dans le groupe actuel. Le format de définition de la configuration du groupe est le même que la configuration du projet.

Remarque : les noms de groupe sont sensibles à la casse et doivent être cohérents avec le nom de groupe défini.

3. Lisez la configuration

Après avoir défini le fichier de configuration, vous pouvez utiliser la méthode C fournie par le système (si vous trouvez cela étrange, vous pouvez utiliser le mot Config pour vous aider à vous en souvenir ) pour lire le fichier de configuration existant. Configuration

C(&#39;参数名称&#39;)//获取已经设置的参数值
Copier après la connexion

Par exemple, C('APP_STATUS') peut lire la valeur de réglage du mode de débogage du système. De même, étant donné que les paramètres de configuration ne font pas de distinction entre majuscules et minuscules, C('app_status') est équivalent, mais la convention en majuscules est recommandée.

Renvoie NULL si APP_STATUS n'existe pas encore.

La méthode C peut également être utilisée pour lire la configuration bidimensionnelle

C(&#39;USER_CONFIG.USER_TYPE&#39;)//获取用户配置中的用户类型设置
Copier après la connexion

La méthode C lit la configuration globale et la configuration du courant modules.

S'il n'y a aucun paramètre, toutes les configurations valides seront lues.

Si le même nom de configuration existe, la valeur précédente sera écrasée.

Par exemple :

&#39;HTML_CACHE_TIME&#39; => 60, //静态缓存有效期(秒)
&#39;HTML_CACHE_TIME&#39; => 80,
Copier après la connexion

Le résultat final est 80.

La séquence de chargement est basée sur le paramètre LOAD_EXT_CONFIG

&#39;LOAD_EXT_CONFIG&#39; => &#39;db,info,email,safe,upfile,cache,route,app,alipay,sms,platform,store,pay&#39;
Copier après la connexion

Par exemple, s'il y a un paramètre HTML_CACHE_TIME dans info qui vaut 60 , mais pas dans d'autres configurations, alors ce paramètre indique 60.

S'il y a aussi HTML_CACHE_TIME 50 dans la base de données, la valeur est toujours 60. Étant donné que les informations sont lues plus tard, le HTML_CACHE_TIME dans la base de données est écrasé.

Ci-joint le code source de la méthode 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(&#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; // 避免非法参数
}
Copier après la connexion

J'espère que cet article sera utile à la conception de programmes PHP de chacun basé sur ThinkPHP cadre.

Pour des explications plus détaillées sur la lecture et les méthodes C configurées dans thinkPHP, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal