Á¦30Àå Zend_Registry

¸ñÂ÷

30.1. ·¹Áö½ºÆ®¸®ÀÇ »ç¿ë¹ý
30.1.1. ·¹Áö½ºÆ®¸®¿¡ÀÇ °ªÀÇ ¼³Á¤
30.1.2. ·¹Áö½ºÆ®¸®·ÎºÎÅÍÀÇ °ªÀÇ Ãëµæ
30.1.3. ·¹Áö½ºÆ®¸® ¿ÀºêÁ§Æ®ÀÇ ÀÛ¼º
30.1.4. ·¹Áö½ºÆ®¸®¿¡ÀÇ ¹è¿­Ç³ÀÇ ¾×¼¼½º
30.1.5. ¿ÀºêÁ§Æ® Çü½ÄÀ¸·ÎÀÇ ·¹Áö½ºÆ®¸®¿¡ÀÇ ¾×¼¼½º
30.1.6. À妽º°¡ Á¸ÀçÇÒÁöÀÇ È®ÀÎ
30.1.7. ·¹Áö½ºÆ®¸®ÀÇ È®Àå
30.1.8. Á¤Àû ·¹Áö½ºÆ®¸®ÀÇ »èÁ¦

30.1. ·¹Áö½ºÆ®¸®ÀÇ »ç¿ë¹ý

·¹Áö½ºÆ®¸®´Â, ¾îÇø®ÄÉÀÌ¼Ç °ø°£¿¡¼­ ¿ÀºêÁ§Æ®³ª º¯¼ö¸¦ º¸Á¸Çϱâ À§ÇÑ ÄÁÅ×À̳ÊÀÔ´Ï´Ù. º¯¼ö¸¦ ·¹Áö½ºÆ®¸®¿¡ º¸Á¸Çϸé, ±× ¿ÀºêÁ§Æ®´Â ¾îÇø®ÄÉÀ̼dz»¿¡¼­ ¾ðÁ¦¶óµµ ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ÀÌ ±¸Á¶´Â, ±Û·Î¹úÀÎ ½ºÅ丮Áö¸¦ »ç¿ëÇÏ´Â ´ë½Å¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

·¹Áö½ºÆ®¸®ÀÇ ÀüÇüÀûÀÎ »ç¿ë¹ýÀº,Zend_Registry Ŭ·¡½ºÀÇ Á¤Àû ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ÇÑÆí, ÀÌ Å¬·¡½º´Â ¹è¿­ ¿ÀºêÁ§Æ®¶óµµ ÀÖÀ¸¹Ç·Î, ¹è¿­Ç³ÀÇ ÀÎÅÍÆäÀ̽º·Î ¾×¼¼½º ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

30.1.1. ·¹Áö½ºÆ®¸®¿¡ÀÇ °ªÀÇ ¼³Á¤

¾î´À ¿£Æ®¸®¸¦ ·¹Áö½ºÆ®¸®¿¡ º¸Á¸ÇÏ·Á¸é , Á¤Àû ¸Þ¼Òµå set() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.

·Ê 30.1. set() ¸Þ¼ÒµåÀÇ ¿¹


<?php
Zend_Registry
::set('index'$value);

°ªÀ¸·Î¼­´Â, ¿ÀºêÁ§Æ®³ª ¹è¿­, ½ºÄ®¶ó¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ·¹Áö½ºÆ®¸®ÀÇ Æ¯Á¤ÀÇ ¿£Æ®¸®¿¡ º¸Á¸µÇ°í ÀÖ´Â °ªÀ» º¯°æÇÏ·Á¸é , set() (À»)¸¦ »ç¿ëÇØ »õ·Î¿î °ªÀ» ÁöÁ¤ÇÕ´Ï´Ù.

À妽º¿¡´Â ½ºÄ®¶óÄ¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù.¹®ÀÚ¿­ ȤÀº Á¤¼öÀÇ ¾î´ÀÂÊÀ̵çÀ¸·Î, Åë»óÀÇ ¹è¿­°ú °°½À´Ï´Ù.

30.1.2. ·¹Áö½ºÆ®¸®·ÎºÎÅÍÀÇ °ªÀÇ Ãëµæ

¿£Æ®¸®ÀÇ ³»¿ëÀ» ·¹Áö½ºÆ®¸®·ÎºÎÅÍ ÃëµæÇÏ·Á¸é , Á¤Àû ¸Þ¼Òµå get() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.

·Ê 30.2. get() ¸Þ¼ÒµåÀÇ ¿¹


<?php
$value 
Zend_Registry::get('index');

getInstance() ¸Þ¼Òµå´Â, Á¤ÀûÀÎ ·¹Áö½ºÆ®¸® ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.

·¹Áö½ºÆ®¸® ¿ÀºêÁ§Æ®´Â Â÷·ÊÂ÷·Ê 󸮸¦ ÇÏ´Â °ÍÀÌ °¡´É (iterable) ÀÔ´Ï´Ù.

·Ê 30.3. ·¹Áö½ºÆ®¸®ÀÇ Â÷·ÊÂ÷·Ê ó¸®ÀÇ ¿¹


<?php
$registry 
Zend_Registry::getInstance();

foreach (
$registry as $index => $value) {
    echo 
"·¹Áö½ºÆ®¸®ÀÇ À妽º $index ¿¡ Æ÷ÇԵǴ ³»¿ë:n";
    
var_dump($value);
}

30.1.3. ·¹Áö½ºÆ®¸® ¿ÀºêÁ§Æ®ÀÇ ÀÛ¼º

Á¤Àû ¸Þ¼Òµå¸¦ »ç¿ëÇØ Á¤ÀûÀÎ ·¹Áö½ºÆ®¸®¿¡ ¾×¼¼½º ÇÒ »Ó¸¸ ¾Æ´Ï¶ó, Á÷Á¢ ÀνºÅϽº¸¦ ÀÛ¼ºÇØ, ±×°ÍÀ» ¿ÀºêÁ§Æ®·Î¼­ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

Á¤Àû ¸Þ¼Òµå·Î ¾×¼¼½º ÇÏ´Â ·¹Áö½ºÆ®¸® ÀνºÅϽº´Â, ´Ü¼øÇÑ ÀνºÅϽºÀÇ ÇϳªÀ̸ç, Á¤ÀûÀ¸·Î °Ý³³µÇ°í ÀÖ½À´Ï´Ù. ±× ¶§¹®¿¡, ¾îÇø®ÄÉÀ̼dz»ÀÇ ¾îµð¿¡¼­¶óµµ ¾×¼¼½º ÇÒ ¼ö ÀÖ½À´Ï´Ù.

·¹Áö½ºÆ®¸®ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇÏ·Á¸é , ±ØÈ÷ º¸ÅëÀ¸·Î new constructor¡¡ ¡¡ À» »ç¿ëÇÕ´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, ·¹Áö½ºÆ®¸®ÀÇ ¿£Æ®¸®¸¦ ¿¬»ó ¹è¿­·Î¼­ ÃʱâÈ­ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.

·Ê 30.4. ·¹Áö½ºÆ®¸®¸¦ ÀÛ¼ºÇÏ´Â ¿¹


<?php
$registry 
= new Zend_Registry(array('index' => $value));

ÀÌ ÀνºÅϽº¸¦ ÀÛ¼ºÇϸé, ¹è¿­Ç³ÀÇ ¹æ¹ýÀ¸·Î ¾×¼¼½º ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ȤÀº, Á¤Àû ¸Þ¼Òµå setInstance() (À»)¸¦ »ç¿ëÇÏ´Â °ÍÀ¸·Î, ÀÌ ÀνºÅϽº¸¦ Á¤Àû ÀνºÅϽº·Î ¼³Á¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

·Ê 30.5. Á¤Àû ·¹Áö½ºÆ®¸®ÀÇ ÃʱâÈ­ÀÇ ¿¹


<?php
$registry 
= new Zend_Registry(array('index' => $value));

Zend_Registry::setInstance($registry);

setInstance() ¸Þ¼Òµå´Â, ¸¸¾à ¹ú½á Á¤Àû ·¹Áö½ºÆ®¸®°¡ ÃʱâÈ­µÇ°í ÀÖ´Â °æ¿ì¿¡ Zend_Exception (À»)¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.

30.1.4. ·¹Áö½ºÆ®¸®¿¡ÀÇ ¹è¿­Ç³ÀÇ ¾×¼¼½º

º¹¼öÀÇ °ªÀ» ÃëµæÇϰųª ¼³Á¤Çϰųª ÇÏ´Â °æ¿ì´Â, ¹è¿­Ç³ÀÇ ±â¹ýÀ¸·Î ¾×¼¼½º ÇÏ¸é Æí¸®ÇϰÚÁö¿ä.

·Ê 30.6. ¹è¿­ ¾×¼¼½ºÀÇ ¿¹


<?php
$registry 
Zend_Registry::getInstance();

$registry['index'] = $value;

var_dump$registry['index'] );

30.1.5. ¿ÀºêÁ§Æ® Çü½ÄÀ¸·ÎÀÇ ·¹Áö½ºÆ®¸®¿¡ÀÇ ¾×¼¼½º

°´Ã¼ ÁöÇâÀÇ ¹æ½ÄÀ¸·Î, À妽º¸íÀ» ¿ÀºêÁ§Æ®ÀÇ ÇÁ·ÓÆÛƼ·Î¼­ ¾×¼¼½º ÇÒ ¼ö ÀÖÀ¸¸é Æí¸®ÇϰÚÁö¿ä. ±×·¸°Ô ÇÏ·Á¸é , ¿É¼Ç ArrayObject::ARRAY_AS_PROPS (À»)¸¦ ÁöÁ¤ÇØ ·¹Áö½ºÆ®¸® ¿ÀºêÁ§Æ®¸¦ ¸í½ÃÀûÀ¸·Î ÀÛ¼ºÇØ, Á¤Àû ÀνºÅϽº¸¦ ÃʱâÈ­ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. À̰ÍÀº, Á¤Àû ·¹Áö½ºÆ®¸®¿¡ÀÇ ÃÖÃÊÀÇ ¾×¼¼½º°¡ ¹ß»ýÇϱâ Àü¿¡ ½Ç½ÃÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÌ ¿É¼ÇÀ» »ç¿ëÇÒ ¶§ ÁÖÀÇ ÇսôÙ.PHP ÀÇ ¹öÁ¯¿¡ µû¶ó¼­´Â, ÀÌ ¿É¼ÇÀ» ÁöÁ¤ÇØ ·¹Áö½ºÆ®¸®¸¦ »ç¿ëÇÏ¸é ¹ö±×°¡ ¹ß»ýÇÏ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

·Ê 30.7. ¿ÀºêÁ§Æ® Çü½ÄÀÇ ¾×¼¼½ºÀÇ ¿¹


<?php
// ¾îÇø®ÄÉÀ̼ÇÀÇ ±âµ¿ ÆÄÀÏ·ÎÀÇ ±â¼ú
$registry = new Zend_Registry(array(), ArrayObject::ARRAY_AS_PROPS)
Zend_Registry::setInstance($registry);
$registry->tree 'apple';

.
.
.

// ¾îÇø®ÄÉÀ̼dz»ÀÇ ´Ù¸¥ ÇÔ¼ö·Î,
$registry Zend_Registry::getInstance();

echo 
$registry->tree// "apple" (¿Í)°ú Ãâ·ÂÇÕ´Ï´Ù

$registry->index $value;

var_dump($registry->index);

30.1.6. À妽º°¡ Á¸ÀçÇÒÁöÀÇ È®ÀÎ

·¹Áö½ºÆ®¸®ÀÇ Æ¯Á¤ÀÇ À妽º°¡ °ªÀ» °¡Áö°í ÀÖÀ»Áö¸¦ Á¶»çÇÏ·Á¸é , Á¤Àû ¸Þ¼Òµå isRegistered() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.

·Ê 30.8. isRegistered() ¸Þ¼ÒµåÀÇ ¿¹


<?php
if (Zend_Registry::isRegistered($index)) {
    
$value Zend_Registry::get($index);
}

·¹Áö½ºÆ®¸®ÀÇ Æ¯Á¤ÀÇ À妽º°¡ °ªÀ» °¡Áö°í ÀÖÀ»Áö¸¦ ¹è¿­Ç³À¸·Î Á¶»çÇÏ·Á¸é , Åë»óÀÇ ¹è¿­°ú °°°Ô isset() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.

·Ê 30.9. isset() ¸Þ¼ÒµåÀÇ ¿¹


<?php
$registry 
Zend_Registry::getInstance();

// ¹è¿­Ç³ÀÇ ±¸¹®À¸·ÎÀÇ ¾×¼¼½º
if (isset($registry['index'])) {
    
var_dump$registry['index'] );
}

// À¯È¿ÇÏ°Ô Çϰí ÀÖÀ¸¸é, ¿ÀºêÁ§Æ® Çü½ÄÀ¸·ÎÀÇ ¾×¼¼½ºµµ °¡´ÉÇÕ´Ï´Ù
if (isset($registry->index)) {
    
var_dump$registry->index );
}

30.1.7. ·¹Áö½ºÆ®¸®ÀÇ È®Àå

Á¤Àû ·¹Áö½ºÆ®¸®´Â Zend_Registry Ŭ·¡½ºÀÇ ÀνºÅϽºÀÔ´Ï´Ù. ·¹Áö½ºÆ®¸®¿¡ ¾î¶°ÇÑ ±â´ÉÀ» Ãß°¡ÇÏ°í ½ÍÀº °æ¿ì´Â, Zend_Registry (À»)¸¦ °è½ÂÇÑ Å¬·¡½º¸¦ ÀÛ¼ºÇØ, ±×°ÍÀ» Á¤Àû ·¹Áö½ºÆ®¸®·Î »ç¿ëÇϴ Ŭ·¡½º·Î¼­ ÁöÁ¤ÇÕ´Ï´Ù. Ŭ·¡½º¸¦ ÁöÁ¤ÇÏ·Á¸é , Á¤Àû ¸Þ¼Òµå setClassName() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÌ Å¬·¡½º´Â Zend_Registry (À»)¸¦ °è½ÂÇϰí ÀÖÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

·Ê 30.10. Á¤Àû ·¹Áö½ºÆ®¸®ÀÇ Å¬·¡½º¸íÀ» ÁöÁ¤ÇÏ´Â ¿¹


<?php
Zend_Registry
::setClassName('My_Registry');

Zend_Registry::set('index'$value);

ÃÖÃÊ·Î ·¹Áö½ºÆ®¸®¿¡ ¾×¼¼½º ÇÑ ´ÙÀ½¿¡ Ŭ·¡½º¸íÀ» ¼³Á¤ÇÏ·Á°í Çϸé, ·¹Áö½ºÆ®¸®´Â Zend_Exception (À»)¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.Á¤Àû ·¹Áö½ºÆ®¸®ÀÇ Å¬·¡½º¸íÀº, ¾îÇø®ÄÉÀ̼ÇÀÇ ±âµ¿ ÆÄÀÏ·Î ÁöÁ¤ÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.

30.1.8. Á¤Àû ·¹Áö½ºÆ®¸®ÀÇ »èÁ¦

Åë»óÀº ºÒÇÊ¿äÇÕ´Ï´Ù¸¸, ·¹Áö½ºÆ®¸®ÀÇ Á¤Àû ÀνºÅϽº¸¦ »èÁ¦ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ±× ¶§¿¡´Â, Á¤Àû ¸Þ¼Òµå _unsetInstance() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.

[ÁÖÀÇ] µ¥ÀÌÅ͸¦ ÀÒ´Â ¸®½ºÅ©

_unsetInstance() (À»)¸¦ »ç¿ëÇϸé, Á¤Àû ·¹Áö½ºÆ®¸®³»ÀÇ Àüµ¥ÀÌÅͰ¡ ÆÄ±âµÇ¾î º¹±¸ÇÒ ¼ö ¾ø½À´Ï´Ù.

ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â °ÍÀº, ¿¹¸¦ µé¾î, Á¤Àû ·¹Áö½ºÆ®¸® ¿ÀºêÁ§Æ®¸¦ ÃʱâÈ­ÇÑ ´ÙÀ½¿¡ setInstance() (ÀÌ)³ª setClassName() (À»)¸¦ »ç¿ëÇÏ´Â °æ¿ìÀÔ´Ï´Ù.Á¤Àû ÀνºÅϽº¸¦ »èÁ¦ÇÏ´Â °ÍÀ¸·Î, ÀÌ·¯ÇÑ ¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.

·Ê 30.11. _unsetInstance() ¸Þ¼ÒµåÀÇ ¿¹


<?php
Zend_Registry
::set('index'$value);

Zend_Registry::_unsetInstance();

// Å¬·¡½º¸¦ º¯°æÇÕ´Ï´Ù
Zend_Registry::setClassName('My_Registry');

Zend_Registry::set('index'$value);