[MANUAL] English:
[zend.git] / documentation / manual / pl / module_specs / Zend_Config-TheoryOfOperation.xml
blobe68fc83fa840592a8670b787a13e3521a3218a19
1 <sect1 id="zend.config.theory_of_operation">
2     <title>Zasady działania</title>
3     <para>
4         Dane konfiguracyjne są przekazywane do konstruktora <code>Zend_Config</code>
5         w postaci asocjacyjnej tablicy, która może być wielowymiarowa, po to, aby
6         obsłużyć dane zorganizowane w różny sposób, od prostych po specyficzne.
7         Konkretny adapter posiada funkcjonalność przystosowującą przechowywane dane
8         konfiguracyjne do wygenerowania tablicy asocjacyjnej dla konstruktora
9         <code>Zend_Config</code>. Skrypt użytkownika może przekazać taką tablicę
10         bezpośrednio do konstruktora <code>Zend_Config</code>, nie używając klasy
11         adaptera, since it may be appropriate to do so in certain situations.
12     </para>
13     <para>
14         Each configuration data array value becomes a property of the
15         <code>Zend_Config</code> object. The key is used as the property name.
16         If a value is itself an array, then the resulting object property is
17         created as a new <code>Zend_Config</code> object, loaded with the array
18         data. This occurs recursively, such that a hierarchy of configuration
19         data may be created with any number of levels.
20     </para>
21     <para>
22         Klasa <code>Zend_Config</code> implementuje interfejsy <code>Countable</code>
23         oraz <code>Iterator</code> w celu zapewnienia łatwego dostępu do danych
24         konfiguracyjnych. Dzięki temu można użyć funkcji
25         <ulink url="http://php.net/count"><code>count()</code></ulink> oraz składni
26         PHP takiej jak <ulink url="http://php.net/foreach"><code>foreach</code></ulink>
27         na obiektach <code>Zend_Config</code>.
28     </para>
29     <para>
30         Domyślnie dane konfiguracyjne dostępne poprzez <code>Zend_Config</code>
31         są tylko do odczytu, i próba przypisania (np., <code>$config->database->host = 'example.com'</code>)
32         spowoduje wyrzucenie wyjątku. Te domyślne zachowanie może być zmienione
33         poprzez konstruktor, aby pozwolić na modyfikację wartości danych konfiguracyjnych.
34         Dodatkowo, jeśli modyfikacje są dozwolone, klasa <code>Zend_Config</code>
35         obsługuje usuwanie wartości danych konfiguracyjnych
36           (np. <code>unset($config->database->host);</code>).
37         <note>
38             <para>
39                 Jest ważne, aby nie mylić modyfikacji danych konfiguracyjnych w pamięci z
40                 zapisywaniem danych konfiguracyjnych do konkretnych środków przechowywania.
41                 Narzędzia do tworzenia i modyfikowania danych konfiguracyjnych dla rożnych
42                 środków przechowywania są poza zakresem klasy <code>Zend_Config</code>.
43                 Są dostępne zewnętrzne rozwiązania open source służące do
44                 tworzenia oraz modyfikowania danych konfiguracyjnych dla różnych
45                 środków przechowywania.
46             </para>
47         </note>
48     </para>
49     <para>
50         Klasy adapterów dziedziczą z klasy <code>Zend_Config</code> więc wykorzystują
51         ich funkconalność.
52     </para>
53     <para>
54         Rodzina klas <code>Zend_Config</code> pozwala na zorganizowanie danych
55         konfiguracyjnych w sekcje. Obiekty adapterów <code>Zend_Config</code>
56         mogą załadować jedną określoną sekcję, wiele określonych sekcji lub
57         wszystkie sekcje (gdy żadna nie jest określona).
58     </para>
59     <para>
60         Klasy adapterów <code>Zend_Config</code> wspierają model pojedynczego dziedziczenia,
61         w którym jedna sekcja danych konfiguracyjnych może dziedziczyć z innej sekcji.
62         Jest to zapewnione w celu zredukowania lub wyeliminowania potrzeby
63         duplikowania danych konfiguracyjnych z różnych powodów. Sekcja dziedzicząca
64         może nadpisać wartości, które dziedziczy z sekcji rodzica. Tak jak w
65         dziedziczeniu klas PHP, sekcja może dziedziczyć z sekcji rodzica, która
66         może dziedziczyć z innej sekcji rodzica i tak dalej, ale wielokrotne
67         dziedziczenie (np., sekcja C dziedzicząca bezpośrednio z sekcji A oraz B)
68         nie jest obsługiwane.
69     </para>
70     <para>
71         Jeśli masz dwa obiekty <code>Zend_Config</code>, możesz je połączyć w
72         jeden pojedynczy obiekt używając metody <code>merge()</code>.
73         Na przykład, mając obiekt $config oraz $localConfig, możesz dołączyć
74         obiekt $localConfig do $config używając metody
75         <code>$config->merge($localConfig);</code>. Dane z obiektu $localConfig
76         nadpiszą dane o tej samej nazwie znajdujące się w obiekcie $config.
77     </para>
78 </sect1>
79 <!--
80 vim:se ts=4 sw=4 et:
81 -->