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