この記事では主に thinkPHP の設定の読み取りと C メソッドを紹介し、thinkPHP 設定ファイルの機能、場所、グループ化、読み取り方法をサンプルの形式で分析します。
この記事の例では、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. モジュールのグループ化が有効な場合、グループごとに構成ファイルを個別に定義できます。
プロジェクト構成ディレクトリ/グループ。 name/config.php
'APP_GROUP_LIST' => 'Home,Admin', //项目分组设定 'DEFAULT_GROUP' => 'Home', //默认分组
Home と Admin の 2 つのグループが定義されたので、次のようにグループ構成ファイルを定義できます。
Conf/Home/config.php Conf/Admin/config.php#各グループの設定ファイルは現在のグループ内でのみ有効です。グループ設定の定義形式はプロジェクト設定と同じです。
注: グループ名では大文字と小文字が区別され、定義されたグループ名と一致している必要があります。
3. 設定を読みます
設定ファイルを定義した後、システムが提供する C メソッドを使用できます (奇妙に感じる場合は、既存の構成を読み取るには、Config word (記憶に役立つ) を使用します。C('参数名称')//获取已经设置的参数值たとえば、C('APP_STATUS') は、システムのデバッグの設定値を読み取ることができます。モード、繰り返しますが、構成パラメータでは大文字と小文字が区別されないため、C('app_status') は同等ですが、大文字の規則が推奨されます。 APP_STATUS がまだ存在しない場合は、NULL を返します。 C メソッドは、2 次元構成を読み取るためにも使用できます。
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 には 60 のパラメータ HTML_CACHE_TIME がありますが、他の設定にパラメータがない場合、このパラメータが読み取られます。出力されたときは 60 です。 データベースに HTML_CACHE_TIME 50 がある場合、値は 60 のままです。情報は後で読み取られるため、データベース内の 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; // 避免非法参数 }
##上記がこの記事の全内容です。ヘルプは、すべての人の学習に役立ちます。その他の関連コンテンツについては、PHP 中国語 Web サイトに注目してください。
関連する推奨事項:
ThinkPHP の N メソッドの分析# #
以上がthinkPHP での設定の読み取りと C メソッドの解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。