ホームページ >バックエンド開発 >PHPチュートリアル >ZendベースのConfig機構のアプリケーション分析_PHPチュートリアル
Zend の Config クラスは Zend_Config_Ini にあります
コード
$config = new Zend_Config_Ini("/var/www/html/usvn/config/config.ini", "general");
date_default_timezone_set($config->タイムゾーン);
USVN_ConsoleUtils::setLocale($config->system->locale);
===
Config.ini ファイルの内容
[一般]
url.base = "/usvn"
translation.locale = "zh_CN"
タイムゾーン = "アジア/上海"
詳細な分析
ここでは Zend_Config_Ini のコンストラクターのみが使用されており、その __construct が表示されます。
最初のステップは、設定ファイルがあるかどうかを確認することです。 2 番目のステップは、オプションを管理することです。ここでのオプションは、allowModifications 属性 (構成ファイル内の属性を変更できるかどうか) と、nestSeparator 属性 (構成ファイル内のキー区切り記号、デフォルトはドット) で設定できます。
以下は $iniArray = $this->_loadIniFile($filename); と呼ばれます。この関数は構成ファイルを解析するため、非常に重要です。続いて、混乱を避けるために、_parseIniFile によって返されるデータがどのようなものかを見てみましょう:
ini 設定ファイルではセットを表すために [] が使用されているため、_loadIniFile によって返される 2 次元配列によって返されるキーは一般的です。しかし実際には、設定ファイルのセクションとして [general:123] を使用すると、この関数は [;extends] の値として 123 を返します。これは実際には、コードのように見えるものです。コードは次のとおりです。 array(system=> array( locale=>aa_DJ.utf8)) のキーに locale => aa_DJ.utf8 を追加します。 ここではオプションのnestSeparator属性が使用されます。この属性はデフォルトでドットになります。つまり、translation.localeが配列に分割されます。たとえば、前に渡したnestSeparatorがコロンの場合は、構成ファイルをtranslationに設定する必要があります。 :location = .. ここではこれ以上追求しません。これは単なる文字列操作にすぎません。 最終的に分析されたdataArrayは次のようになります
date_default_timezone_set($config->タイムゾーン);
ここで ->timezone が使用できる理由は、config の属性の代わりに __get が使用されているためです。
Zend の Config メカニズムの分析が終了しました。
www.bkjia.com
truehttp://www.bkjia.com/PHPjc/327070.html技術記事
Zend の Config クラスは Zend_Config_Ini コードにあります $config = new Zend_Config_Ini("/var/www/html/config/config.ini", "general"); date_default_timezone_set($config-timezone);