[MANUAL] English:
[zend.git] / documentation / manual / pl / module_specs / Zend_Config_Ini.xml
blob510a5402a9c03cf3c9f09c896e59c98bcb0c76ff
1 <sect1 id="zend.config.adapters.ini">
2     <title>Zend_Config_Ini</title>
3     <para>
4         <code>Zend_Config_Ini</code> pozwala programistom przechowywać dane
5         konfiguracyjne w znanym formacie INI a następnie odczytywać je w aplikacji
6         używając składni zagnieżdżonych właściwości obiektów. Format INI jest
7         wyspecjalizowany aby zapewnić możliwość zachowania hierarchi danych
8         konfiguracyjnych a także możliwość dziedziczenia pomiędzy sekcjami danych
9         konfiguracyjnych. Hierarchia danych konfiguracyjnych jest uzyskiwana
10         poprzez oddzielenie kluczy za pomocą znaku kropki (<code>.</code>).
11         Sekcja może rozszerzać lub dziedziczyć z innej sekcji poprzez dodanie
12         za nazwą sekcji znaku dwukropka (<code>:</code>)  oraz nazwy sekcji,
13         z której dane mają być dziedziczone.
14     </para>
15     <note>
16         <title>parse_ini_file</title>
17         <para>
18             <code>Zend_Config_Ini</code> wykorzystuje funkcję PHP <ulink url="http://php.net/parse_ini_file"><code>parse_ini_file()</code></ulink>.
19             Proszę przejrzyj dokumentację tej funkcji aby znać jej specyficzne zachowania,
20             które dziedziczy <code>Zend_Config_Ini</code>, takie jak to w jaki sposób
21             są obsługiwane specjalne wartości takie jak <code>true</code>, <code>false</code>,
22             <code>yes</code>, <code>no</code>, oraz <code>null</code>.
23         </para>
24     </note>
25     <note>
26         <title>Separator kluczy</title>
27         <para>
28             Domyślnie separatorem kluczy jest znak kropki (<code>.</code>). Może
29             on być jednak zmieniony przez zmianę klucza
30             <code>'nestSeparator'</code> z tablicy <code>$options</code> podczas
31             tworzenia obiektu <code>Zend_Config_Ini</code>. Na przykład:
32             <programlisting role="php"><![CDATA[
33 $options['nestSeparator'] = ':';
34 $config = new Zend_Config_Ini('/path/to/config.ini',
35                               'staging',
36                               $options);
37 ]]>
38             </programlisting>
39         </para>
40     </note>
41     <example id="zend.config.adapters.ini.example.using">
42         <title>Użycie Zend_Config_Ini</title>
43         <para>
44             Ten przykład pokazuje podstawowe użycie klasy <code>Zend_Config_Ini</code>
45             do ładowania danych konfiguracyjnych z pliku INI. W tym przykładzie
46             znajdują się dane konfiguracyjne zarówno dla systemu produkcyjnego
47             jak i dla systemu rozbudowywanego. Z tego względu, że dane
48             konfiguracyjne systemu rozbudowywanego są bardzo podobne do tych dla
49             systemu produkcyjnego, sekcja systemu rozbudowywanego dziedziczy po
50             sekcji systemu produkcyjnego. W tym przypadku decyzja jest dowolna
51             i mogłoby to być zrobione odwrotnie, z sekcją systemu produkcyjnego
52             dziedziczącą po sekcji systemu rozbudowywanego, chociaż nie może to
53             być przykładem dla bardziej złożonych sytuacji. Załóżmy, że poniższe
54             dane konfiguracyjne znajdują się w pliku <code>/path/to/config.ini</code>:
55         </para>
56         <programlisting role="ini"><![CDATA[
57 ; Podstawowe dane konfiguracyjne
58 [production]
59 webhost                  = www.example.com
60 database.adapter         = pdo_mysql
61 database.params.host     = db.example.com
62 database.params.username = dbuser
63 database.params.password = secret
64 database.params.dbname   = dbname
66 ; Konfiguracja aplikacji rozbudowywanej dziedziczy z podstawowej
67 ; konfiguracji, a niektóre wartości są nadpisywane
68 [staging : production]
69 database.params.host     = dev.example.com
70 database.params.username = devuser
71 database.params.password = devsecret
72 ]]>
73         </programlisting>
74         <para>
75             Następnie załóżmy, że programista aplikacji potrzebuje danych
76             konfiguracyjnych aplikacji rozbudowywanej z pliku INI. Prostą 
77             sprawą jest załadowanie tych danych określając plik INI oraz
78             sekcję dla aplikacji rozbudowywanej:
79         </para>
80         <programlisting role="php"><![CDATA[
81 $config = new Zend_Config_Ini('/path/to/config.ini', 'staging');
83 echo $config->database->params->host; // wyświetla "dev.example.com"
84 echo $config->database->params->dbname; // wyświetla "dbname"
85 ]]>
86         </programlisting>
87     </example>
88     <note>
89     <table id="zend.config.adapters.ini.table">
90         <title>Parametry konstruktora Zend_Config_Ini</title>
91         <tgroup cols="2">
92             <thead>
93                   <row>
94                     <entry>Parametr</entry>
95                     <entry>Opis</entry>
96                 </row>
97             </thead>
98             <tbody>
99                 <row>
100                     <entry><code>$filename</code></entry>
101                     <entry>Nazwa pliku INI do załadowania.</entry>
102                 </row>
103                 <row>
104                     <entry><code>$section</code></entry>
105                     <entry>
106                         Nazwa sekcji wewnątrz pliku ini, która ma być załadowana.
107                         Ustawienie wartości tego parametru na null spowoduje
108                         załadowanie wszystkich sekcji. Alternatywnie, możesz
109                         przekazać tablicę nazw sekcji aby załadować wiele sekcji.
110                     </entry>
111                 </row>
112                 <row>
113                     <entry><code>$options = false</code></entry>
114                     <entry>Tablica opcji. Obsługiwane są poniższe klucze:
115                         <itemizedlist>
116                             <listitem>
117                                 <para>
118                                     <emphasis>allowModifications</emphasis>:
119                                     Ustaw na true aby umożliwić późniejszą
120                                     modyfikację załadowanego pliku. Domyśłnie
121                                     false
122                                 </para>
123                             </listitem>
124                             <listitem>
125                                 <para>
126                                     <emphasis>nestSeparator</emphasis>:
127                                     Ustaw znak jaki ma być użyty do oddzielania
128                                     przestrzeni nazw. Domyślnie "."
129                                 </para>
130                             </listitem>
131                         </itemizedlist>
132                     </entry>
133                 </row>
134             </tbody>
135         </tgroup>
136     </table>
137     </note>
138 </sect1>