المطورون الذين يرديون الأضافة إلى امكانيات الـ 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.