[GENERIC] Zend_Translate:
[zend.git] / documentation / manual / ja / module_specs / Zend_Config_Ini.xml
blob1ef23f55de91e1cfce6d9f381becb8c8b228abab
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <!-- EN-Revision: 21130 -->
4 <sect1 id="zend.config.adapters.ini">
5     <title>Zend_Config_Ini</title>
7     <para>
8         <classname>Zend_Config_Ini</classname> は、おなじみの <acronym>INI</acronym>
9         形式のファイルに保存された設定データを、<classname>Zend_Config</classname>
10         を通じてオブジェクトのプロパティとして扱えるようにします。
11         この <acronym>INI</acronym> 形式は、階層化された設定データを扱うこと、
12         そしてセクション間の継承関係を扱うことに特化されています。
13         設定データの階層構造は、キーの名前をドットあるいはピリオド
14         (<emphasis>.</emphasis>) で区切ることによって表現します。
15         他のセクションを拡張するなどの継承関係は、
16         セクション名に続けてコロン (<emphasis>:</emphasis>) を、
17         そしてその後に継承元のセクション名を指定することで表します。
18     </para>
20     <note>
21         <title>INI ファイルのパース</title>
23         <para>
24             <classname>Zend_Config_Ini</classname> は、<acronym>PHP</acronym> の
25             <ulink url="http://php.net/parse_ini_file"><methodname>parse_ini_file()</methodname></ulink>
26             関数を使用しています。このドキュメントでは、<classname>Zend_Config_Ini</classname>
27             固有の挙動に注意しましょう。例えば、特殊な値として
28             "<constant>TRUE</constant>" や "<constant>FALSE</constant>"、
29             "yes"、"no" そして "<constant>NULL</constant>"
30             を処理できることなどです。
31         </para>
32     </note>
34     <note>
35         <title>キーの区切り文字</title>
37         <para>
38             デフォルトでは、キーの区切り文字はピリオド (<emphasis>.</emphasis>) です。
39             しかし、これは変更することもできます。変更するには、
40             <classname>Zend_Config_Ini</classname> オブジェクトの作成時に
41             <varname>$options</varname> のキー
42             <property>nestSeparator</property> を設定します。たとえばこのようになります。
43         </para>
45         <programlisting language="php"><![CDATA[
46 $options['nestSeparator'] = ':';
47 $config = new Zend_Config_Ini('/path/to/config.ini',
48                               'staging',
49                               $options);
50 ]]>
51             </programlisting>
53     </note>
55     <example id="zend.config.adapters.ini.example.using">
56         <title>Zend_Config_Ini の使用法</title>
58         <para>
59             この例は、<classname>Zend_Config_Ini</classname> を使用して
60             <acronym>INI</acronym> ファイルから設定データを読み込むための基本的な方法を説明するものです。
61             この例では、運用環境の設定と開発環境の設定を両方管理しています。
62             開発環境用の設定データは運用環境用のものと非常に似ているので、
63             開発環境用のセクションは運用環境用のセクションを継承させています。
64             今回の場合なら、逆に運用環境用のセクションを開発環境用のものから継承させてもいいでしょう。
65             そうしたからといって特に状況が複雑になるわけではありません。
66             ここでは、次のような内容の設定データが
67             <filename>/path/to/config.ini</filename> に存在するものとします。
68         </para>
70         <programlisting language="ini"><![CDATA[
71 ; 運用環境の設定データ
72 [production]
73 webhost                  = www.example.com
74 database.adapter         = pdo_mysql
75 database.params.host     = db.example.com
76 database.params.username = dbuser
77 database.params.password = secret
78 database.params.dbname   = dbname
80 ; 開発環境の設定データは、運用環境のデータを継承したうえで
81 ; 必要に応じて値を上書きします
82 [staging : production]
83 database.params.host     = dev.example.com
84 database.params.username = devuser
85 database.params.password = devsecret
86 ]]>
87 </programlisting>
89         <para>
90             次に、開発者が開発環境用の設定データを <acronym>INI</acronym> ファイルから読み込むことを考えます。
91             これは簡単なことで、単に <acronym>INI</acronym> ファイルとセクションを指定するだけです。
92         </para>
94         <programlisting language="php"><![CDATA[
95 $config = new Zend_Config_Ini('/path/to/config.ini', 'staging');
97 echo $config->database->params->host;   // "dev.example.com" と出力します
98 echo $config->database->params->dbname; // "dbname" と出力します
99 ]]>
100         </programlisting>
101     </example>
103     <note>
104     <table id="zend.config.adapters.ini.table">
105         <title>Zend_Config_Ini コンストラクタのパラメータ</title>
106         <tgroup cols="2">
107             <thead>
108                   <row>
109                     <entry>パラメータ</entry>
110                     <entry>説明</entry>
111                 </row>
112             </thead>
113             <tbody>
114                 <row>
115                     <entry><varname>$filename</varname></entry>
116                     <entry>読み込む <acronym>INI</acronym> ファイル。</entry>
117                 </row>
118                 <row>
119                     <entry><varname>$section</varname></entry>
120                     <entry>
121                         ini ファイルの中の、読み込む [section]。
122                         このパラメータを <constant>NULL</constant> にすると、
123                         すべてのセクションを読み込みます。
124                         また、セクション名の配列を指定すると、複数のセクションを読み込みます。
125                     </entry>
126                 </row>
127                 <row>
128                     <entry><varname>$options</varname> (デフォルトは <constant>FALSE</constant>)</entry>
129                     <entry>オプションの配列。以下のキーをサポートしています。
130                         <itemizedlist>
131                             <listitem>
132                                 <para>
133                                     <emphasis><property>allowModifications</property></emphasis>:
134                                     <constant>TRUE</constant> を指定すると、
135                                     読み込んだ設定データをインメモリで後で変更できます。
136                                     デフォルトは <constant>FALSE</constant> です。
137                                 </para>
138                             </listitem>
139                             <listitem>
140                                 <para>
141                                     <emphasis><property>nestSeparator</property></emphasis>:
142                                     ネストの区切り文字として使用する文字を設定します。
143                                     デフォルトは "." です。
144                                 </para>
145                             </listitem>
146                         </itemizedlist>
147                     </entry>
148                 </row>
149             </tbody>
150         </tgroup>
151     </table>
152     </note>
153 </sect1>
154 <!--
155 vim:se ts=4 sw=4 et: