25.2. ±âº»ÀûÀÎ »ç¿ë¹ý

Zend_Session_Namespace ÀÇ ÀνºÅϽº°¡,Zend Framework ÀÇ ¼¼¼Ç µ¥ÀÌÅ͸¦ Á¶ÀÛÇϱâ À§ÇÑ ±âº»ÀûÀÎ API (À»)¸¦ Á¦°øÇÕ´Ï´Ù. À̸§ °ø°£À» »ç¿ëÇÏ¸é ¼¼¼Ç µ¥ÀÌÅ͸¦ °³º°ÀûÀ¸·Î Ãë±ÞÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸, ¼¼¼Ç µ¥ÀÌÅÍ Àüü¸¦ ÇϳªÀÇ À̸§ °ø°£¿¡¼­ Ãë±ÞÇÏ°í ½ÍÀº »ç¶÷À» À§ÇÑ µðÆúÆ® À̸§ °ø°£µµ ÁغñµÇ¾î ÀÖ½À´Ï´Ù. Zend_Session_Namespace (Àº)´Â,ext/session ¹× ½´ÆÛ ±Û·Î¹ú º¯¼ö $_SESSION (À»)¸¦ »ç¿ëÇϰí, ¼¼¼Ç »óÅÂÀÇ µ¥ÀÌÅ͸¦ º¸Á¸ÇÕ´Ï´Ù. $_SESSION (Àº)´Â ±Û·Î¹úÇÏ°Ô ¾×¼¼½º °¡´ÉÇÕ´Ï´Ù¸¸, °³¹ßÀÚ´Â À̰Ϳ¡ ´ëÇØ¼­ Á÷Á¢ ¾×¼¼½º ÇÏ´Â °ÍÀº ±×¸¸µÎ¾î¾ß ÇÕ´Ï´Ù. Zend_Session ¹× Zend_Session_Namespace (À»)¸¦ ÀÌ¿ëÇÏ´Â °ÍÀ¸·Î, ¼¼¼Ç °ü·ÃÀÇ ±â´ÉÀ» º¸´Ù È¿À²Àû ÇÑÆí ¾ÈÀüÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.

25.2.1. Æ©Å丮¾ó

¾Æ¹«°Íµµ À̸§ °ø°£À» Çϰí ÀÖ¾î ÇÏÁö ¾Ê°í Zend_Session ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇϸé, ¸ðµç µ¥ÀÌÅÍ´Â Åõ°úÀûÀ¸·Î "Default" (ÀÌ)¶ó´Â À̸§ÀÇ À̸§ °ø°£¿¡ º¸Á¸µË´Ï´Ù. Zend_Session (Àº)´Â, ¼¼¼Ç À̸§ °ø°£ ÄÁÅ×À̳ÊÀÇ ³»¿ëÀ» Á÷Á¢ Á¶ÀÛÇϱâ À§ÇÑÀÇ °ÍÀÔ´Ï´Ù.±× ´ë½ÅÀ¸·Î¼­ Zend_Session_Namespace (À»)¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÌÇÏÀÇ ¿¹´Â, ÀÌ µðÆúÆ®ÀÇ À̸§ °ø°£À» »ç¿ëÇØ À¯Àú°¡ ±× ÆäÀÌÁö¸¦ ¸îȸ ¿­¶÷Çß´ÂÁö¸¦ ¼¼´Â ¹æ¹ýÀ» ³ªÅ¸³»´Â °ÍÀÔ´Ï´Ù. ½ÇÁ¦·Î ½ÃÇèÇØ º¸°í ½ÍÀº °æ¿ì´Â, ÀÌÇÏÀÇ Äڵ带 ZF ÀÇ ±âµ¿ ÆÄÀϳ»¿¡ ±â¼úÇÕ´Ï´Ù

·Ê 25.1. ÆäÀÌÁöºäÀÇ ¼¼´Â ¹æ¹ý


<?php
    
require_once 'Zend/Session.php';

    
$defaultNamespace = new Zend_Session_Namespace('Default');

    
// use the magic method __isset() in Zend_Session_Namespace:
    
if (isset($defaultNamespace->numberOfPageRequests)) {
        
$defaultNamespace->numberOfPageRequests++; //  À̰ÍÀÌ, ÆäÀÌÁö°¡ ÀÐÈú ¶§¸¶´Ù °¡»êµË´Ï´Ù
    
} else {
        
$defaultNamespace->numberOfPageRequests 1//  1ȸ°
    
}

    echo 
" ÀÌ ¼¼¼ÇÀ¸·Î ÆäÀÌÁö°¡ ¸®Äù½ºÆ® µÈ ȸ¼ö: "$defaultNamespace->numberOfPageRequests;
?>

Zend_Session_Namespace ÀÇ ¼ö¸¹Àº ÀÌÁ¡ Áß Çϳª¿¡, º¹¼öÀÇ ¸ðµâÀÌ °¢°¢ ´Ù¸¥ ·¹º§ÀÇ Ä¸½¶È­¸¦ ½Ç½ÃÇÒ ¼ö ÀÖ´Ù°í ÇÏ´Â Á¡ÀÌ ÀÖ½À´Ï´Ù. Zend_Session_Namespace ÀÇ constructor¡¡ ¡¡ ¿¡´Â, ¿É¼ÇÀÇ Àμö $namespace (À»)¸¦ °Ç³×ÁÙ ¼ö ÀÖ½À´Ï´Ù.À̰ÍÀ» »ç¿ëÇÏ´Â °ÍÀ¸·Î, ¾î´À ÄÄÆÛ³ÍÆ®³ª ¸ðµâ, ÄÚµåÀÇ µ¥ÀÌÅͰ¡ ´Ù¸¥ ÄÄÆÛ³ÍÆ®³ª ¸ðµâ, ÄÚµå·ÎºÎÅÍ ÁöÄÑÁö°Ô µË´Ï´Ù. À̸§ °ø°£Àº, ¼¼¼Ç »óÅ µ¥ÀÌÅͰ¡ °©Àڱ⠺¯°æµÇ¾î ¹ö¸®´Â °ÍÀ» ¸·´Â´Ù È¿À²ÀûÀ¸·Î " ¾ÈÀüÇÑ" ±¸Á¶¸¦ Á¦°øÇÕ´Ï´Ù. À̸§ °ø°£¸í¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº, ÇÏ´ÃÀÌ ¾Æ´Ï´Ù PHP ¹®ÀÚ¿­ÀÔ´Ï´Ù. ¼±µÎ¿¡ ¾ð´õ ½ºÄÚ¾Æ ('_') ¹®ÀÚ¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. 'Zend_' ±×¸®°í ½ÃÀ۵Ǵ À̸§ °ø°£À» »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº,Zend Framework ÀÇ ÄÚ¾î ÄÄÆÛ³ÍÆ®¸¸ÀÔ´Ï´Ù.

·Ê 25.2. »õ·Î¿î ¹æ¹ý: À̸§ °ø°£ÀÇ Ãæµ¹À» ÇÇÇÑ´Ù


<?php
    
// Zend_Auth  ÄÄÆÛ³ÍÆ®¿ë
    
require_once 'Zend/Session.php';
    
$authNamespace = new Zend_Session_Namespace('Zend_Auth');
    
$authNamespace->user "myusername";

    
//  À¥ ¼­ºñ½º ÄÄÆÛ³ÍÆ®¿ë
    
$webServiceNamespace = new Zend_Session_Namespace('Some_Web_Service');
    
$webServiceNamespace->user "mywebusername";
?>

À§ÀÇ ¿¹´Â, ÀÌ ¾Æ·¡ÀÇ ÄÚµå¿Í °°Àº °á°ú°¡ µË´Ï´Ù. ´ÜÁö, À§ÀÇ ¿¹¿¡¼­´Â ¼¼¼Ç µ¥ÀÌÅͰ¡ °¢°¢ÀÇ À̸§ °ø°£¿¡¼­ ĸ½¶È­µÇ°í ÀÖ½À´Ï´Ù.

·Ê 25.3. ³°Àº ¹æ¹ý: PHP ÀÇ ¼¼¼Ç¿¡ÀÇ ¾×¼¼½º


<?php
    $_SESSION
['Zend_Auth']['user'] = "myusername";
    
$_SESSION['Some_Web_Service']['user'] = "mywebusername";
?>

25.2.2. ¼¼¼Ç À̸§ °ø°£ÀÇ Â÷·ÊÂ÷·Ê ó¸®

Zend_Session_Namespace ÇÏ IteratorAggregate ÀÎÅÍÆäÀ̽º (À»)¸¦ ¿ÏÀüÇÏ°Ô ½ÇÀåÇϰí ÀÖ¾î,foreach ¹®ÀåÀ» ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù.

·Ê 25.4. ¼¼¼ÇÀÇ Â÷·ÊÂ÷·Ê ó¸®


<?php
    
// Zend_Session  (Àº)´Â Â÷·ÊÂ÷·Ê 󸮰¡ °¡´ÉÇÕ´Ï´Ù
    
require_once 'Zend/Session.php';
    
$aNamespace = new Zend_Session_Namespace('some_namespace_with_data_present');
    foreach (
$aNamespace as $index => $value) {
        echo 
"aNamespace->$index = '$value';n";
    }
?>

25.2.3. ¼¼¼Ç À̸§ °ø°£¿¡ÀÇ ¾×¼¼½º ¹æ¹ý

Åë»óÀÇ ¾×¼¼½º¿ëÀ¸·Î, ¸ÅÁ÷ ¸Þ¼Òµå __set() ,__unset() ,__isset() ¹× __get() (À»)¸¦ ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù.ÀÌ·¯ÇÑ ¸ÅÁ÷ ¸Þ¼Òµå¸¦, Zend_Session ÀÇ ¼­ºê Ŭ·¡½º Àܷ̿κÎÅÍ Á÷Á¢ »ç¿ë ÇØ¼­´Â ¾ÈµË´Ï´Ù.±× ´ë½Å¿¡, ÀÌÇÏ¿Í °°ÀÌ Åë»óÀÇ ¿¬»êÀÚ¸¦ »ç¿ëÇÕ´Ï´Ù.

·Ê 25.5. ¼¼¼Ç µ¥ÀÌÅÍ¿¡ÀÇ ¾×¼¼½º


<?php
            $object
->property $value; echo
            (isset(
$object->property) ? 'set' 'unset');
?>