1.9. Zend::initRegistry($registry = 'Zend_Registry')
Poprzedni | Rozdział 1. Zend | Następny

## 1.9. Zend::initRegistry($registry = 'Zend_Registry')

Programiści którzy chcą rozszerzyć istniejącą funkcjonalność rejestru mogą użyć tej funkcji. Ta metoda umożliwia utworzyć podklasę Zend_Registry, włączając w to dodanie aliasów dla metod takich jak offsetGet() oraz offsetExists(), nazywając je np. has(), getval(), setval(), itp., tworząc instancję podklasy Zend_Registry w pliku ładującym, a następnie przekazując tą instancję do metody initRegistry(), zanim zostaną użyte inne związane z rejestrem metody. Zauważ, że metoda initRegistry() może być użyta tylko raz, aby zapobiec przypadkowemu nadpisaniu rejestru po jego zainicjowaniu. Dodatkowo używając metod Zend::registry() lub Zend::register() automatycznie wywoływana jest metoda initRegistry(), jeśli rejestr nie został jeszcze utworzony.

Przykład 1.5. Przykład użycia register() / offsetSet()

    <?php
    class Zend_RegistryMine extends Zend_Registry
    {
        public function getval($index)
        {
            return $this->offsetGet($index);
        }
    }

    # w twoim pliku ładującym:

    $ini_array = parse_ini_file('your_stuff.ini'); // zwykle opcjonalne
    $registry = new Zend_RegistryMine($ini_array);
    Zend::initRegistry($registry);

    # teraz metody Zend::registry(), Zend::register(), oraz Zend::isRegistered() działają jak powinny
    ?>

Użyj stałej `ArrayObject::ARRAY_AS_PROPS` w konstruktorze aby włączyć możliwość uzyskiwania dostępu do wartości używając `$registry->$indexName`, zamiast `$registry[$indexName]`. Jakkolwiek, uważaj na ewentualne konflikty nazw gdy będziesz rozszerzał klasę Zend_Registry i dodawał prywatne zmienne.

Przykład 1.6. Uzyskiwanie dostępu do wartości używając składni OO zamiast składni ArrayAccess

    <?php
    $registry = new Zend_Registry(array(), ArrayObject::ARRAY_AS_PROPS);
    Zend::initRegistry($registry);
    ?>

Poprzedni | Początek rozdziału | Następny
1.8. Zend::registry($index = null) | Spis treści | Rozdział 2. Zend_Acl