5.2. Zasady działania
Poprzedni | Rozdział 5. Zend_Config | Następny

## 5.2. Zasady działania

Dane konfiguracyjne są przekazywane do konstruktora `Zend_Config` w postaci asocjacyjnej tablicy, która może być wielowymiarowa, po to, aby obsłużyć dane zorganizowane w różny sposób, od prostych po specyficzne. Konkretny adapter posiada funkcjonalność przystosowującą przechowywane dane konfiguracyjne do wygenerowania tablicy asocjacyjnej dla konstruktora `Zend_Config`. Skrypt użytkownika może przekazać taką tablicę bezpośrednio do konstruktora `Zend_Config`, nie używając klasy adaptera, since it may be appropriate to do so in certain situations.

Klasa `Zend_Config` implementuje interfejsy `Countable` oraz `Iterator` w celu zapewnienia łatwego dostępu do danych konfiguracyjnych. Dzięki temu można użyć funkcji `count()` oraz składni PHP takiej jak `foreach` na obiektach `Zend_Config`.

Domyślnie dane konfiguracyjne dostępne poprzez `Zend_Config` są tylko do odczytu, i próba przypisania (np., `$config->database->host = 'example.com'`) spowoduje wyrzucenie wyjątku. Te domyślne zachowanie może być zmienione poprzez konstruktor, aby pozwolić na modyfikację wartości danych konfiguracyjnych.

| Notatka
Jest ważne, aby nie mylić modyfikacji danych konfiguracyjnych w pamięci z zapisywaniem danych konfiguracyjnych do konkretnych środków przechowywania. Narzędzia do tworzenia i modyfikowania danych konfiguracyjnych dla rożnych środków przechowywania są poza zakresem klasy `Zend_Config`. Są dostępne zewnętrzne rozwiązania open source służące do tworzenia oraz modyfikowania danych konfiguracyjnych dla różnych środków przechowywania.

Klasy adapterów dziedziczą z klasy `Zend_Config` więc wykorzystują ich funkconalność.

Rodzina klas `Zend_Config` pozwala na zorganizowanie danych konfiguracyjnych w sekcje. Obiekty adapterów `Zend_Config` mogą załadować jedną określoną sekcję, wiele określonych sekcji lub wszystkie sekcje (gdy żadna nie jest określona).

Klasy adapterów `Zend_Config` wspierają model pojedynczego dziedziczenia, w którym jedna sekcja danych konfiguracyjnych może dziedziczyć z innej sekcji. Jest to zapewnione w celu zredukowania lub wyeliminowania potrzeby duplikowania danych konfiguracyjnych z różnych powodów. Sekcja dziedzicząca może nadpisać wartości, które dziedziczy z sekcji rodzica. Tak jak w dziedziczeniu klas PHP, sekcja może dziedziczyć z sekcji rodzica, która może dziedziczyć z innej sekcji rodzica i tak dalej, ale wielokrotne dziedziczenie (np., sekcja C dziedzicząca bezpośrednio z sekcji A oraz B) nie jest obsługiwane.

Poprzedni | Początek rozdziału | Następny
Rozdział 5. Zend_Config | Spis treści | 5.3. Zend_Config_Ini