3.2. Zend_Config_Array
Poprzedni | Rozdział 3. Zend_Config | Następny

## 3.2. Zend_Config_Array

### 3.2.1. Wprowadzenie

Klasa `Zend_Config_Array` umożliwia programistom przechowywanie danych konfiguracyjnych w wielowymiarowych tablicach PHP i uzyskanie dostępu do nich jak do właściwości obiektu za pomocą `Zend_Config`.

Przykład 3.2. Dane konfiguracyjne przechowywane jako tablice PHP

Ten przykład pokazuje proste użycie klasy `Zend_Config_Array` do ładowania danych konfiguracyjnych z tablic PHP. Wpierw tworzymy tablice PHP zawierające dane konfiguracyjne:

    <?php
    // Podstawowe dane konfiguracyjne
    $config['production'] = array(
        'webhost' => 'www.example.com',
        'database' => array(
            'type'     => 'pdo_mysql',
            'host'     => 'db.example.com',
            'username' => 'dbuser',
            'password' => 'secret',
            'name'     => 'dbname'
        )
    );

    // Konfiguracja aplikacji rozbudowywanej dziedziczy z podstawowej
    // konfiguracji, a niektóre wartości są nadpisywane
    $config['staging'] = $config['production'];
    $config['staging']['webhost'] = 'dev.example.com';
    $config['staging']['database']['host'] = 'dev.example.com';
    $config['staging']['database']['username'] = 'devuser';
    $config['staging']['database']['password'] = 'devsecret';
    ?>

| Notatka
Tablica zawierająca dane konfiguracyjne znajdująca się w załadowanym skrypcie powinna nazywać się `$config`.

Dziedzieczenie w powyższym przykładzie jest obsługiwane przez przypisanie wartości sekcji `production` do sekcji `staging`. Teraz prostą sprawą jest załadowanie danych konfiguracyjnych za pomocą `Zend_Config_Array`:

    <?php
    require_once 'Zend/Config.php';
    require_once 'Zend/Config/Array.php';

    $config = new Zend_Config(Zend_Config_Array::load('/path/to/config.php', 'staging'));

    echo $config->database->host; // wyświetla "dev.example.com"
    ?>

Ten sposób jest godny uwagi, ponieważ dane konfiguracyjne są bezpośrednio przechowywane w tablicach PHP, a każda wartość danych konfiguracyjnych ma ten sam typ jak w tablicy `$config` z pliku konfiguracyjnego.

    <?php
    $config['staging']['debug']   = 'false'; // wartośc jest łańcuchem znaków
    $config['staging']['console'] = false; // wartość jest zmienną logiczną
    $config['staging']['timeout'] = 30; // wartość jest liczbą całkowitą
    ?>

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