1.9. (Zend::initRegistry($registry = 'Zend_Registry'
السابق | فصل 1. Zend | التالي

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

المطورون الذين يرديون الأضافة إلى امكانيات الـ registry , يمكنهم إستخدام هذه الدالة. هذا الـ method يسمح للمطورين بأن يورثوا من Zend_Registry, يشمل إضافة methods بديلة لـ ()offsetGet و ()offsetExists, مثل ()has و ()getval و ()setval .. إلخ., عن طريق إنشاء نسخة من Zend_Registry subclass فى كود الـ bootstrap, ثم بعدها تمرير هذه النسخة إلى ()initRegistry, قبل أن يتم إستخدام أى methods لها علاقة بالـ registry. لاحظ أن ()intiRegistry يمكن إستخدامها مرة واحدة, و ذلك لتفادى مسح محتويات الـ registry بالخطأ بعد الـ initialization. ايضاً, بإستخدام `()Zend::registry` or `()Zend::register` يتم إستدعاء `()Zend::initRegistry` تلقائياً, إن لم يكن تم إستدعائه من قبل.

مثال 1.5. register() / offsetSet() Example

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

    # in your bootstrap code:

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

    # now the normal ()Zend::registry, ()Zend::register, and ()Zend::isRegistered work as expected
    ?>

إستخدم الـ constant المسمى `ArrayObject::ARRAY_AS_PROPS` فى الـ constractor لتسمح بالوصول إلى القيم بإستخدام `registry->$indexName$`, بالإضافة إلى `registry[$indexName]$`. مع ذلك, إنتبه إلى التضارب بين الأسماء, إن كنت تستخدم class يرث من Zend_Registry و قد اضفت إليه private variables.

مثال 1.6. الوصول إلى القيم بإستخدام الصيغة الكائنية بدلا من صيغة الـ ArrayAccess

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

السابق | أعلى | التالي
1.8. (Zend::registry($index = null | البداية | فصل 2. Zend_Acl