·¹Áö½ºÆ®¸®´Â, ¾îÇø®ÄÉÀÌ¼Ç °ø°£¿¡¼ ¿ÀºêÁ§Æ®³ª º¯¼ö¸¦ º¸Á¸Çϱâ À§ÇÑ ÄÁÅ×À̳ÊÀÔ´Ï´Ù. º¯¼ö¸¦ ·¹Áö½ºÆ®¸®¿¡ º¸Á¸Çϸé, ±× ¿ÀºêÁ§Æ®´Â ¾îÇø®ÄÉÀ̼dz»¿¡¼ ¾ðÁ¦¶óµµ ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ÀÌ ±¸Á¶´Â, ±Û·Î¹úÀÎ ½ºÅ丮Áö¸¦ »ç¿ëÇÏ´Â ´ë½Å¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
·¹Áö½ºÆ®¸®ÀÇ ÀüÇüÀûÀÎ »ç¿ë¹ýÀº,Zend_Registry Ŭ·¡½ºÀÇ Á¤Àû ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ÇÑÆí, ÀÌ Å¬·¡½º´Â ¹è¿ ¿ÀºêÁ§Æ®¶óµµ ÀÖÀ¸¹Ç·Î, ¹è¿Ç³ÀÇ ÀÎÅÍÆäÀ̽º·Î ¾×¼¼½º ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
¾î´À ¿£Æ®¸®¸¦ ·¹Áö½ºÆ®¸®¿¡ º¸Á¸ÇÏ·Á¸é , Á¤Àû ¸Þ¼Òµå
set()
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
°ªÀ¸·Î¼´Â, ¿ÀºêÁ§Æ®³ª ¹è¿, ½ºÄ®¶ó¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
·¹Áö½ºÆ®¸®ÀÇ Æ¯Á¤ÀÇ ¿£Æ®¸®¿¡ º¸Á¸µÇ°í ÀÖ´Â °ªÀ» º¯°æÇÏ·Á¸é ,
set()
(À»)¸¦ »ç¿ëÇØ »õ·Î¿î °ªÀ» ÁöÁ¤ÇÕ´Ï´Ù.
À妽º¿¡´Â ½ºÄ®¶óÄ¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù.¹®ÀÚ¿ ȤÀº Á¤¼öÀÇ ¾î´ÀÂÊÀ̵çÀ¸·Î, Åë»óÀÇ ¹è¿°ú °°½À´Ï´Ù.
¿£Æ®¸®ÀÇ ³»¿ëÀ» ·¹Áö½ºÆ®¸®·ÎºÎÅÍ ÃëµæÇÏ·Á¸é , Á¤Àû ¸Þ¼Òµå
get()
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
getInstance()
¸Þ¼Òµå´Â,
Á¤ÀûÀÎ ·¹Áö½ºÆ®¸® ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.
·¹Áö½ºÆ®¸® ¿ÀºêÁ§Æ®´Â Â÷·ÊÂ÷·Ê 󸮸¦ ÇÏ´Â °ÍÀÌ °¡´É (iterable) ÀÔ´Ï´Ù.
·Ê 30.3. ·¹Áö½ºÆ®¸®ÀÇ Â÷·ÊÂ÷·Ê ó¸®ÀÇ ¿¹
<?php
$registry = Zend_Registry::getInstance();
foreach ($registry as $index => $value) {
echo "·¹Áö½ºÆ®¸®ÀÇ À妽º $index ¿¡ Æ÷ÇԵǴ ³»¿ë:n";
var_dump($value);
}
Á¤Àû ¸Þ¼Òµå¸¦ »ç¿ëÇØ Á¤ÀûÀÎ ·¹Áö½ºÆ®¸®¿¡ ¾×¼¼½º ÇÒ »Ó¸¸ ¾Æ´Ï¶ó, Á÷Á¢ ÀνºÅϽº¸¦ ÀÛ¼ºÇØ, ±×°ÍÀ» ¿ÀºêÁ§Æ®·Î¼ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
Á¤Àû ¸Þ¼Òµå·Î ¾×¼¼½º ÇÏ´Â ·¹Áö½ºÆ®¸® ÀνºÅϽº´Â, ´Ü¼øÇÑ ÀνºÅϽºÀÇ ÇϳªÀ̸ç, Á¤ÀûÀ¸·Î °Ý³³µÇ°í ÀÖ½À´Ï´Ù. ±× ¶§¹®¿¡, ¾îÇø®ÄÉÀ̼dz»ÀÇ ¾îµð¿¡¼¶óµµ ¾×¼¼½º ÇÒ ¼ö ÀÖ½À´Ï´Ù.
·¹Áö½ºÆ®¸®ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇÏ·Á¸é ,
±ØÈ÷ º¸ÅëÀ¸·Î new
constructor¡¡ ¡¡ À» »ç¿ëÇÕ´Ï´Ù.
À̰Ϳ¡ ÀÇÇØ, ·¹Áö½ºÆ®¸®ÀÇ ¿£Æ®¸®¸¦ ¿¬»ó ¹è¿·Î¼ ÃʱâÈÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
ÀÌ ÀνºÅϽº¸¦ ÀÛ¼ºÇϸé, ¹è¿Ç³ÀÇ ¹æ¹ýÀ¸·Î ¾×¼¼½º ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
ȤÀº, Á¤Àû ¸Þ¼Òµå setInstance()
(À»)¸¦ »ç¿ëÇÏ´Â °ÍÀ¸·Î, ÀÌ ÀνºÅϽº¸¦ Á¤Àû ÀνºÅϽº·Î ¼³Á¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
·Ê 30.5. Á¤Àû ·¹Áö½ºÆ®¸®ÀÇ ÃʱâÈÀÇ ¿¹
<?php
$registry = new Zend_Registry(array('index' => $value));
Zend_Registry::setInstance($registry);
setInstance()
¸Þ¼Òµå´Â, ¸¸¾à ¹ú½á
Á¤Àû ·¹Áö½ºÆ®¸®°¡ Ãʱâȵǰí ÀÖ´Â °æ¿ì¿¡
Zend_Exception (À»)¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.
º¹¼öÀÇ °ªÀ» ÃëµæÇϰųª ¼³Á¤Çϰųª ÇÏ´Â °æ¿ì´Â, ¹è¿Ç³ÀÇ ±â¹ýÀ¸·Î ¾×¼¼½º ÇÏ¸é Æí¸®ÇϰÚÁö¿ä.
·Ê 30.6. ¹è¿ ¾×¼¼½ºÀÇ ¿¹
<?php
$registry = Zend_Registry::getInstance();
$registry['index'] = $value;
var_dump( $registry['index'] );
°´Ã¼ ÁöÇâÀÇ ¹æ½ÄÀ¸·Î,
À妽º¸íÀ» ¿ÀºêÁ§Æ®ÀÇ ÇÁ·ÓÆÛƼ·Î¼ ¾×¼¼½º ÇÒ ¼ö ÀÖÀ¸¸é Æí¸®ÇϰÚÁö¿ä.
±×·¸°Ô ÇÏ·Á¸é , ¿É¼Ç 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);
·¹Áö½ºÆ®¸®ÀÇ Æ¯Á¤ÀÇ À妽º°¡ °ªÀ» °¡Áö°í ÀÖÀ»Áö¸¦ Á¶»çÇÏ·Á¸é ,
Á¤Àû ¸Þ¼Òµå 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 );
}
Á¤Àû ·¹Áö½ºÆ®¸®´Â Zend_Registry Ŭ·¡½ºÀÇ ÀνºÅϽºÀÔ´Ï´Ù.
·¹Áö½ºÆ®¸®¿¡ ¾î¶°ÇÑ ±â´ÉÀ» Ãß°¡ÇÏ°í ½ÍÀº °æ¿ì´Â,
Zend_Registry (À»)¸¦ °è½ÂÇÑ Å¬·¡½º¸¦ ÀÛ¼ºÇØ,
±×°ÍÀ» Á¤Àû ·¹Áö½ºÆ®¸®·Î »ç¿ëÇϴ Ŭ·¡½º·Î¼ ÁöÁ¤ÇÕ´Ï´Ù.
Ŭ·¡½º¸¦ ÁöÁ¤ÇÏ·Á¸é , Á¤Àû ¸Þ¼Òµå
setClassName()
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
ÀÌ Å¬·¡½º´Â Zend_Registry (À»)¸¦ °è½ÂÇϰí ÀÖÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
·Ê 30.10. Á¤Àû ·¹Áö½ºÆ®¸®ÀÇ Å¬·¡½º¸íÀ» ÁöÁ¤ÇÏ´Â ¿¹
<?php
Zend_Registry::setClassName('My_Registry');
Zend_Registry::set('index', $value);
ÃÖÃÊ·Î ·¹Áö½ºÆ®¸®¿¡ ¾×¼¼½º ÇÑ ´ÙÀ½¿¡ Ŭ·¡½º¸íÀ» ¼³Á¤ÇÏ·Á°í Çϸé, ·¹Áö½ºÆ®¸®´Â Zend_Exception (À»)¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.Á¤Àû ·¹Áö½ºÆ®¸®ÀÇ Å¬·¡½º¸íÀº, ¾îÇø®ÄÉÀ̼ÇÀÇ ±âµ¿ ÆÄÀÏ·Î ÁöÁ¤ÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.
Åë»óÀº ºÒÇÊ¿äÇÕ´Ï´Ù¸¸, ·¹Áö½ºÆ®¸®ÀÇ Á¤Àû ÀνºÅϽº¸¦ »èÁ¦ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
±× ¶§¿¡´Â, Á¤Àû ¸Þ¼Òµå _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);