7.9. ¸®½ºÆù½º ¿ÀºêÁ§Æ®

7.9.1. »ç¿ë¹ý

¸®½ºÆù½º ¿ÀºêÁ§Æ®´Â, ¸®Äù½ºÆ® ¿ÀºêÁ§Æ® (ÀÌ)¶ó°í ´ë°¡ µÇ´Â °ÍÀÔ´Ï´Ù. ±× ¸ñÀûÀº, ÄÁÅÙÃ÷³ª Çì´õ¸¦ ¼öÁýÇØ, ±×°ÍÀ» µ¹·ÁÁÖ´Â °ÍÀÔ´Ï´Ù. °Ô´Ù°¡ ÇÁ·±Æ® ÄÜÆ®·Ñ·¯·Î Æ÷ÂøÇÑ ¿¹¿Ü´Â ¸ðµÎ ¸®½ºÆù½º ¿ÀºêÁ§Æ®¿¡°Ô °Ç³×Áý´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, ¿¹¿ÜÀÇ Ã³¸®°¡ Çϱ⠽¬¿öÁý´Ï´Ù. ÀÌ °Åµ¿À» º¯°æÇÏ·Á¸é Zend_Controller_Front::throwExceptions(true) (¿Í)°ú ¼³Á¤ÇÕ´Ï´Ù.


$front->throwExceptions(true);

Çì´õ¸¦ Æ÷ÇÔÇÑ ¸®½ºÆù½º Ãâ·ÂÀ» ¼Û½ÅÇÏ·Á¸é , sendOutput() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.


$response->sendResponse();
[ÁÖÀÇ] ÁÖÀÇ

µðÆúÆ®¿¡¼­´Â, ¸®Äù½ºÆ®ÀÇ µð½ºÆÌÄ¡¿¡ Á¾·áÇÑ ½ÃÁ¡¿¡¼­ ÇÁ·±Æ® ÄÜÆ®·Ñ·¯°¡ sendResponse() (À»)¸¦ ÄÝ ÇÕ´Ï´Ù.Åë»óÀº À̰ÍÀ» ÄÝ ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ±×·¯³ª, Å×½ºÆ®Áß µî¿¡ ¸®½ºÆù½ºÀÇ ³»¿ëÀ» Á¶ÀÛÇÏ°í ½ÍÀº °æ¿ì´Â, returnResponse Ç÷¡±×¸¦ Zend_Controller_Front::returnResponse(true) (¿Í)°ú ¼³Á¤ÇÏ´Â °ÍÀ¸·Î ÀÌ ÇൿÀ» º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.


<?php
$front
->returnResponse(true);
$response $front->dispatch();

// ¹«¾ùÀΰ¡ÀÇ Ã³¸®, ¿¹¸¦ µé¾î ·Î±×ÀÇ ±â·ÏµîÀ» ½Ç½ÃÇÏ°í ³ª¼­
// °á°ú¸¦ Ãâ·ÂÇÕ´Ï´Ù
$response->sendResponse();

°³¹ßÀÚ´Â, ¾×¼Ç ÄÜÆ®·Ñ·¯ Áß(¾È)¿¡¼­ ¸®½ºÆù½º ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. Ãâ·ÂÀ» Á÷Á¢ ·»´õ¸µ Çϰųª Á÷Á¢ Çì´õ¸¦ ¼Û½ÅÇϰųª ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, ±×°ÍµéÀ» ¸®½ºÆù½º ¿ÀºêÁ§Æ®¿¡ °Ý³³Çϵµ·Ï(µíÀÌ) ÇÕ´Ï´Ù.


// ¾×¼Ç ÄÜÆ®·Ñ·¯ÀÇ ¾×¼Ç³»¿¡¼­,
// Çì´õ¸¦ ¼³Á¤ÇÕ´Ï´Ù
$this->getResponse()
    ->setHeader('Content-Type', 'text/html')
    ->appendBody($content);

ÀÌ·¸°Ô ÇÏ´Â °ÍÀ¸·Î, ¸ðµç Çì´õ¸¦ ÇÑ ¹ø¿¡ ¼Û½ÅÇØ, ±× ´ÙÀ½¿¡ ÄÁÅÙÃ÷¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.

[ÁÖÀÇ] ÁÖÀÇ

¾×¼Ç ÄÜÆ®·Ñ·¯·Î ºäÀÇ ÅëÇÕ (À»)¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â, ·»´õ¸µ µÈ ºä½ºÅ©¸³Æ®ÀÇ ³»¿ëÀ» ¸®½ºÆù½º ¿ÀºêÁ§Æ®·Î ¼³Á¤ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. Zend_Controller_Action::render() ÇÏÁö¸¸ µðÆúÆ®·Î À̰ÍÀ» ½Ç½ÃÇÕ´Ï´Ù.

¾îÇø®ÄÉÀ̼ÇÀ¸·Î ¿¹¿Ü°¡ ¹ß»ýÇß´ÂÁö¸¦ Á¶»çÇÏ·Á¸é , ¸®½ºÆù½º ¿ÀºêÁ§Æ®ÀÇ isException() Ç÷¡±×¸¦ Á¶»çÇÕ´Ï´Ù.¿¹¿Ü¸¦ ÃëµæÇÏ·Á¸é getException() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.°Ô´Ù°¡ µ¶ÀÚÀûÀÎ ¸®½ºÆù½º ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇϰí, ¿¡·¯ ÆäÀÌÁö·ÎÀÇ ¸®µð·ºÆ®³ª ¿¹¿Ü ¸Þ¼¼ÁöÀÇ ·Î±× Ãâ·Â, ¿¹¿Ü¸¦ ¾Ë±â ½±°Ô Ç¥½ÃÇÑ´Ù (°³¹ß¿ë) µîÀ» ½Ç½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.

¸®½ºÆù½º ¿ÀºêÁ§Æ®´Â, ÇÁ·±Æ® ÄÜÆ®·Ñ·¯ÀÇ dispatch() (À¸)·ÎºÎÅÍ ¹Þ°Ô µË´Ï´Ù.ȤÀº, Ãâ·ÂÀÇ ·»´õ¸µÀ» ½Ç½ÃÇÏÁö ¾Ê´Â »óÅÂÀÇ ¸®½ºÆù½º ¿ÀºêÁ§Æ®¸¦ ÇÁ·±Æ® ÄÜÆ®·Ñ·¯·ÎºÎÅÍ ¹ÞÀ» ¼öµµ ÀÖ½À´Ï´Ù.


// dispatch ÀÇ ÈÄ¿¡ ÃëµæÇÕ´Ï´Ù
$front->dispatch();
$response = $front->getResponse();
if ($response->isException()) {
    // ·Î±×¿¡ÀÇ ±â·Ï, ¸ÞÀÏ ¼Û½Å µî...
}

// È¤Àº, ÇÁ·±Æ® ÄÜÆ®·Ñ·¯ÀÇ dispatch() ÀÇ µ¹¾Æ°¡ °ªÀ» »ç¿ëÇÕ´Ï´Ù
$front->returnResponse(true);
$response = $front->dispatch();

// ¹«¾ùÀΰ¡ÀÇ Ã³¸®...

// ¸¶Áö¸·¿¡ °á°ú¸¦ Ç¥½ÃÇÕ´Ï´Ù
$response->sendResponse();

µðÆúÆ®¿¡¼­´Â, ¿¹¿Ü ¸Þ¼¼Áö´Â Ç¥½ÃµÇÁö ¾Ê½À´Ï´Ù. ÀÌ °Åµ¿À» ¿À¹ö¶óÀ̵å(override) ÇÏ·Á¸é renderExceptions() ¸Þ¼Òµå¸¦ »ç¿ëÇϵ簡, ȤÀº À§¿¡¼­ ³ªÅ¸³» º¸ÀÎ °Íó·³ ÇÁ·±Æ® ÄÜÆ®·Ñ·¯·Î throwExceptions() (À»)¸¦ À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù.


$response->renderExceptions(true);
$front->dispatch($request, $response);

// È¤Àº
$front->returnResponse(true);
$response = $front->dispatch();
$response->renderExceptions();
$response->sendResponse();

// È¤Àº
$front->throwExceptions(true);
$front->dispatch();

7.9.2. Çì´õÀÇ Á¶ÀÛ

¹æ±ÝÀü ¼³¸íÇÑ °Íó·³, ¸®½ºÆù½º ¿ÀºêÁ§Æ®ÀÇ ¿ªÇÒÀÇ Çϳª´Â HTTP ¸®½ºÆù½º Çì´õ¸¦ ¹ßÇàÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ ¶§¹®¿¡, ´Ù¾çÇÑ ¸Þ¼Òµå°¡ ÁغñµÇ¾î ÀÖ½À´Ï´Ù.

  • canSendHeaders() (À»)¸¦ »ç¿ëÇϰí, Çì´õ°¡ ¹ú½á ¼Û½ÅµÇ°í ÀÖ´ÂÁö ¾î¶²Áö¸¦ Á¶»çÇÕ´Ï´Ù. ¿É¼ÇÀÇ Ç÷¡±×·Î, Çì´õ°¡ ¼Û½Å ³¡³­ °æ¿ì¿¡ ¿¹¿Ü¸¦ ½½·Î¿ì ÇÒÁö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ¼³Á¤Àº, ÇÁ·ÓÆÛƼ headersSentThrowsException (À»)¸¦ false (À¸)·Î ÇÏ´Â °ÍÀ¸·Î µ¡¾²±âÇÒ ¼ö ÀÖ½À´Ï´Ù.

  • setHeader($name, $value, $replace = false) (À»)¸¦ »ç¿ëÇϰí, °³°³ÀÇ Çì´õ¸¦ ¼³Á¤ÇÕ´Ï´Ù.µðÆúÆ®¿¡¼­´Â, µ¿¸íÀÇ Çì´õ°¡ ¹ú½á Á¸ÀçÇßÀ» °æ¿ì¿¡ ±âÁ¸ÀÇ Çì´õ¸¦ ġȯÇÒ °ÍÀº ¾ø½À´Ï´Ù. ±×·¯³ª,$replace (À»)¸¦ true (À¸)·Î ¼³Á¤Çϸé, ±âÁ¸ÀÇ Çì´õ¸¦ µ¡¾²±âÇÏ°Ô µË´Ï´Ù.

    Çì´õ¸¦ ¼³Á¤Çϱâ Àü¿¡, ÀÌ ¸Þ¼Òµå´Â canSendHeaders() (À»)¸¦ »ç¿ëÇØ Çì´õ°¡ Çö½ÃÁ¡¿¡¼­ ¼Û½ÅÀÌ ³¡³­ »óŰ¡ ¾Æ´ÑÁö ¾î¶²Áö, ¿¹¿Ü¸¦ ½½·Î¿ì ÇÒÁö¸¦ Á¶»çÇÕ´Ï´Ù.

  • setRedirect($url, $code = 302) (Àº)´Â, ¸®µð·ºÆ®¿ëÀÇ HTTP Location Çì´õ¸¦ ¼³Á¤ÇÕ´Ï´Ù. HTTP ½ºÅ×ÀÌÅͽº Äڵ带 ÁöÁ¤ÇßÀ» °æ¿ì´Â, ±× Äڵ带 »ç¿ëÇÕ´Ï´Ù.

    ³»ºÎÀûÀ¸·Î´Â, ÀÌ ¸Þ¼Òµå´Â $replace Ç÷¡±×¸¦ ¿ÂÀ¸·Î ÇØ setHeader() (À»)¸¦ ÄÝ Çϰí ÀÖ½À´Ï´Ù.

  • getHeaders() (Àº)´Â, ¸ðµç Çì´õ¸¦ ¹è¿­·Î µ¹·ÁÁÝ´Ï´Ù. °³°³ÀÇ ¹è¿­ÀÇ ¿ä¼Ò´Â,'name' ¹× 'value' ÀÇ µÎ ۸¦ °¡Áö´Â ¹è¿­ÀÌ µË´Ï´Ù.

  • clearHeaders() (Àº)´Â µî·ÏÀ» ¸¶Ä£ Çì´õ¸¦ ¸ðµÎ »èÁ¦ÇÕ´Ï´Ù.

  • setRawHeader() (À»)¸¦ »ç¿ëÇϰí, Ű/Ä¡ ÀÇ Á¶·Î µÇ¾î ÀÖÁö ¾ÊÀº Çì´õ¸¦ ¼³Á¤ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î HTTP status Çì´õµîÀÌ À̰Ϳ¡ ÇØ´çÇÕ´Ï´Ù.

  • getRawHeaders() (Àº)´Â, µî·ÏÀ» ¸¶Ä£ »ýÀÇ Çì´õ¸¦ µ¹·ÁÁÝ´Ï´Ù.

  • clearRawHeaders() (Àº)´Â, µî·ÏÀ» ¸¶Ä£ »ýÀÇ Çì´õ¸¦ ¼Ò°ÅÇÕ´Ï´Ù.

  • clearAllHeaders() (Àº)´Â, Ű/Ä¡ ÀÇ Æä¾îÀÎ Åë»óÀÇ Çì´õ¿Í »ýÀÇ Çì´õÀÇ ¾çÂÊ ¸ðµÎ¸¦ ¼Ò°ÅÇÕ´Ï´Ù.

ÀÌ·¯ÇÑ ¸Þ¼Òµå ¿Ü¿¡, ÇöÀçÀÇ ¸®Äù½ºÆ®ÀÇ HTTP ¸®½ºÆù½º Äڵ带 ¼³Á¤Çϰųª ÃëµæÇϰųª ÇÏ´Â ¸Þ¼Òµå·Î¼­ setHttpResponseCode() (¿Í)°ú getHttpResponseCode() ÇÏÁö¸¸ ÁغñµÇ¾î ÀÖ½À´Ï´Ù.

7.9.3. À̸§ ´ÙÇØ ¼¼±×¸ÕÆ®(segment)

¸®½ºÆù½º ¿ÀºêÁ§Æ®¿¡¼­´Â ¡¸À̸§ ´ÙÇØ ¼¼±×¸ÕÆ®(segment)¡¹¸¦ ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, º»¹®ºÎ¸¸À» ´Ù¸¥ ¼¼±×¸ÕÆ®(segment)¿¡ ºÐ¸®Çϰí, ÁöÁ¤ÇÑ ¼ø¼­·Î Ãâ·ÂÇϰųª¶ó°í Çß´ø °ÍÀÌ ÀÖ°Ô µË´Ï´Ù. ³»ºÎÀûÀ¸·Î´Â ÄÁÅÙÃ÷´Â ¹è¿­·Î¼­ º¸Á¸µÇ¾î ´Ù¾çÇÑ ¸Þ¼Òµå¸¦ »ç¿ëÇØ ±× ¹è¿­¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.

¿¹·Î¼­preDispatch() ÈÅ ¸Þ¼Òµå·Î ¸®½ºÆù½º ¿ÀºêÁ§Æ®¿¡ Çì´õ¸¦ Ãß°¡ÇØ, ¾×¼Ç ÄÜÆ®·Ñ·¯·Î º»¹®À» Ãß°¡Çϰí, ¸¶Áö¸·¿¡ postDispatch() ÈÅ ¸Þ¼Òµå·Î footer¸¦ Ãß°¡ÇÏ´Â °ÍÀ» »ý°¢ÇØ º¾½Ã´Ù.


<?php
// ÀÌ Ç÷¯±× ÀΠŬ·¡½º°¡ ÇÁ·±Æ® ÄÜÆ®·Ñ·¯·Î µî·ÏÀÌ ³¡³­ »óÅÂÀ̶ó°í °¡Á¤ÇÕ´Ï´Ù
class MyPlugin extends Zend_Controller_Plugin_Abstract
{
    public function 
preDispatch(Zend_Controller_Request_Abstract $request)
    {
        
$response $this->getResponse();
        
$view = new Zend_View();
        
$view->setBasePath('../views/scripts');

        
$response->prepend('header'$view->render('header.phtml'));
    }

    public function 
postDispatch(Zend_Controller_Request_Abstract $request)
    {
        
$response $this->getResponse();
        
$view = new Zend_View();
        
$view->setBasePath('../views/scripts');

        
$response->append('footer'$view->render('footer.phtml'));
    }
}

// ¾×¼Ç ÄÜÆ®·Ñ·¯ÀÇ ¿¹
class MyController extends Zend_Controller_Action
{
    public function 
fooAction()
    {
        
$this->render();
    }
}

À§ÀÇ ¿¹·Î /my/foo (À»)¸¦ ÄÝ Çϸé, ¸®½ºÆù½º ¿ÀºêÁ§Æ®¿¡ ÃÖÁ¾ÀûÀ¸·Î °Ý³³µÇ´Â ÄÁÅÙÃ÷´Â ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù.


<?php
array(
    
'header'  => ..., // Çì´õÀÇ ³»¿ë
    
'default' => ..., // MyController::fooAction() ÇÏÁö¸¸ ÀÛ¼ºÇÑ º»¹®
    
'footer'  => ...  // footerÀÇ ³»¿ë
);

À̰ÍÀ» ·»´õ¸µ Çϸé, ¹è¿­¿¡ ¿ä¼Ò°¡ Ãß°¡µÈ ¼ø¼­¿¡ Ç¥½ÃµË´Ï´Ù.

À̸§ ´ÙÇØ ¼¼±×¸ÕÆ®(segment)¸¦ Á¶ÀÛÇÏ´Â ¸Þ¼Òµå¿¡´Â, ÀÌÇÏ¿Í °°Àº °ÍÀÌ ÀÖ½À´Ï´Ù.

  • setBody() ¹× appendBody() ÀÇ µÎ¹øÂ°ÀÇ ÆÄ¶ó¹ÌÅÍÀÌ´Ù $name ¿¡, ¼¼±×¸ÕÆ®(segment)¸íÀ» °Ç³×ÁÙ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀ» ÁöÁ¤Çϸé, ÁöÁ¤ÇÑ ¼¼±×¸ÕÆ®(segment)ÀÇ ³»¿ëÀ» µ¡¾²±âÇÕ´Ï´Ù (Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â »õ·Ó°Ô ÀÛ¼ºÇØ, ¹è¿­¿¡ Ãß°¡ÇÕ´Ï´Ù). setBody() ¿¡ ¼¼±×¸ÕÆ®(segment)¸íÀ» ÁöÁ¤ÇÏÁö ¾Ê¾Ò´ø °æ¿ì´Â, ¹è¿­ Àüü¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.appendBody() ±×¸®°í ¼¼±×¸ÕÆ®(segment)¸íÀ» »ý·« ÇßÀ» °æ¿ì´Â,'default' (ÀÌ)¶ó´Â À̸§ÀÇ ¼¼±×¸ÕÆ®(segment)¸¦ Ãß°¡ÇÕ´Ï´Ù.

  • prepend($name, $content) (Àº)´Â, $name (ÀÌ)¶ó´Â À̸§ÀÇ ¼¼±×¸ÕÆ®(segment)¸¦ ÀÛ¼ºÇϰí, ±×°ÍÀ» ¹è¿­ÀÇ ¼±µÎ¿¡ Ãß°¡ÇÕ´Ï´Ù.°°Àº À̸§ÀÇ ¼¼±×¸ÕÆ®(segment)°¡ Á¸ÀçÇÏ´Â °æ¿ì´Â, ¿ì¼± ±×°ÍÀ» »èÁ¦ÇÏ°í ³ª¼­ Ãß°¡ÇÕ´Ï´Ù(Áï, ±âÁ¸ÀÇ °ÍÀ» µ¡¾²±âÇÕ´Ï´Ù).

  • append($name, $content) (Àº)´Â, $name (ÀÌ)¶ó´Â À̸§ÀÇ ¼¼±×¸ÕÆ®(segment)¸¦ ÀÛ¼ºÇϰí, ±×°ÍÀ» ¹è¿­ÀÇ ¸¶Áö¸·¿¡ Ãß°¡ÇÕ´Ï´Ù.°°Àº À̸§ÀÇ ¼¼±×¸ÕÆ®(segment)°¡ Á¸ÀçÇÏ´Â °æ¿ì´Â, ¿ì¼± ±×°ÍÀ» »èÁ¦ÇÏ°í ³ª¼­ Ãß°¡ÇÕ´Ï´Ù(Áï, ±âÁ¸ÀÇ °ÍÀ» µ¡¾²±âÇÕ´Ï´Ù).

  • insert($name, $content, $parent = null, $before = false) (Àº)´Â,$name (ÀÌ)¶ó´Â À̸§ÀÇ ¼¼±×¸ÕÆ®(segment)¸¦ ÀÛ¼ºÇÕ´Ï´Ù. $parent ¼¼±×¸ÕÆ®(segment)¸¦ ÁöÁ¤Çϸé, »õ·Î¿î ¼¼±×¸ÕÆ®(segment)´Â ±× ¼¼±×¸ÕÆ®(segment)ÀÇ ÀüÀ̳ª µÚ ($before ÀÇ °ªÀ¸·Î Á¤ÇØÁý´Ï´Ù) ¿¡ ¹èÄ¡µË´Ï´Ù.°°Àº À̸§ÀÇ ¼¼±×¸ÕÆ®(segment)°¡ Á¸ÀçÇÏ´Â °æ¿ì´Â, ¿ì¼± ±×°ÍÀ» »èÁ¦ÇÏ°í ³ª¼­ Ãß°¡ÇÕ´Ï´Ù(Áï, ±âÁ¸ÀÇ °ÍÀ» µ¡¾²±âÇÕ´Ï´Ù).

  • clearBody($name = null) ¿¡ $name (À»)¸¦ ÁöÁ¤Çϸé, ±× À̸§ÀÇ ¼¼±×¸ÕÆ®(segment)¸¦ ¼Ò°ÅÇÕ´Ï´Ù (»ý·« ÇßÀ» °æ¿ì´Â, ¹è¿­ Àüü¸¦ ¼Ò°ÅÇÕ´Ï´Ù).

  • getBody($spec = false) ±×¸®°í $spec ¿¡ ¼¼±×¸ÕÆ®(segment)¸íÀ» ÁöÁ¤Çϸé, ±× ¼¼±×¸ÕÆ®(segment)¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù. $spec ¿¡ false (À»)¸¦ ÁöÁ¤Çϸé, ¸ðµç ¼¼±×¸ÕÆ®(segment)ÀÇ ³»¿ëÀ» Â÷·Ê·Î ¿¬°áÇÑ °á°ú¸¦ ¹®ÀÚ¿­·Î µ¹·ÁÁÝ´Ï´Ù. $spec ¿¡ true (À»)¸¦ ÁöÁ¤Çϸé, º»¹®ÀÇ ¹è¿­À» µ¹·ÁÁÝ´Ï´Ù.

7.9.4. ¸®½ºÆù½º ¿ÀºêÁ§Æ®³»¿¡¼­ÀÇ ¿¹¿ÜÀÇ °Ë»ç

¹æ±ÝÀü ¼³¸íÇÑ °Íó·³, µðÆúÆ®¿¡¼­´Â µð½ºÆÌÄ¡Áß¿¡ ¹ß»ýÇÑ ³ÃÇØ´Â ¸®½ºÆù½º ¿ÀºêÁ§Æ®¿¡ µî·ÏµË´Ï´Ù. ¿¹¿Ü´Â ½ºÅÿ¡ µî·ÏµÇ¹Ç·Î, ¹ß»ýÇÑ ¿¹¿Ü´Â ¸ðµÎ º¸°ü À¯ÁöÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀÇ ¿¹¿Ü, µð½ºÆÌÄ¡ ó¸®ÀÇ ¿¹¿Ü, Ç÷¯±× ÀÎÀÇ ¿¹¿Ü µî µî¡¦¡¦. ƯÁ¤ÀÇ ¿¹¿ÜÀÇ ³»¿ëÀ» Á¶»çÇϰųª ¿¹¿Ü¸¦ ·Î±×¿¡ ±â·ÏÇϰųª ÇÏ°í ½ÍÀº °æ¿ì´Â, ¸®½ºÆù½º ¿ÀºêÁ§Æ®ÀÇ ¿¹¿Ü¿ë API (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.

  • setException(Exception $e) (Àº)´Â, ¿¹¿Ü¸¦ µî·ÏÇÕ´Ï´Ù.

  • isException() (Àº)´Â, ¿¹¿Ü°¡ µî·ÏµÇ¾î ÀÖ´ÂÁö ¾î¶²Áö¸¦ Á¶»çÇÕ´Ï´Ù.

  • getException(Exception $e) (Àº)´Â, ¿¹¿Ü ½ºÅà Àüü¸¦ µ¹·ÁÁÝ´Ï´Ù.

  • hasExceptionOfType($type) (Àº)´Â, ƯÁ¤ÀÇ Å¬·¡½ºÀÇ ¿¹¿Ü°¡ ½ºÅÿ¡ µî·ÏµÇ¾î ÀÖ´ÂÁö ¾î¶²Áö¸¦ Á¶»çÇÕ´Ï´Ù.

  • hasExceptionOfMessage($message) (Àº)´Â, ÁöÁ¤ÇÑ ¸Þ¼¼Áö¸¦ Æ÷ÇÔÇÑ ¿¹¿Ü°¡ ½ºÅÿ¡ µî·ÏµÇ¾î ÀÖ´ÂÁö ¾î¶²Áö¸¦ Á¶»çÇÕ´Ï´Ù.

  • hasExceptionOfCode($code) (Àº)´Â, ÁöÁ¤ÇÑ Äڵ带 Æ÷ÇÔÇÑ ¿¹¿Ü°¡ ½ºÅÿ¡ µî·ÏµÇ¾î ÀÖ´ÂÁö ¾î¶²Áö¸¦ Á¶»çÇÕ´Ï´Ù.

  • getExceptionByType($type) (Àº)´Â, ÁöÁ¤ÇÑ Å¬·¡½ºÀÇ ¿¹¿Ü¸¦ ½ºÅÃÀ¸·ÎºÎÅÍ ¸ðµÎ ²¨³À´Ï´Ù. ±× Ŭ·¡½ºÀÇ ¿¹¿Ü°¡ ¹ß°ßµÇÁö ¾Ê¾Ò´ø °æ¿ì´Â false (À»)¸¦ µ¹·ÁÁÖ¾î, ¹ß°ßµÇ¾úÀ» °æ¿ì´Â ¿¹¿ÜÀÇ ¹è¿­À» µ¹·ÁÁÝ´Ï´Ù.

  • getExceptionByMessage($message) (Àº)´Â, ÁöÁ¤ÇÑ ¸Þ¼¼Áö¸¦ Æ÷ÇÔÇÑ ¿¹¿Ü¸¦ ½ºÅÃÀ¸·ÎºÎÅÍ ¸ðµÎ ²¨³À´Ï´Ù. ±× Ŭ·¡½ºÀÇ ¿¹¿Ü°¡ ¹ß°ßµÇÁö ¾Ê¾Ò´ø °æ¿ì´Â false (À»)¸¦ µ¹·ÁÁÖ¾î, ¹ß°ßµÇ¾úÀ» °æ¿ì´Â ¿¹¿ÜÀÇ ¹è¿­À» µ¹·ÁÁÝ´Ï´Ù.

  • getExceptionByCode($code) (Àº)´Â, ÁöÁ¤ÇÑ Äڵ带 Æ÷ÇÔÇÑ ¿¹¿Ü¸¦ ½ºÅÃÀ¸·ÎºÎÅÍ ¸ðµÎ ²¨³À´Ï´Ù. ±× Ŭ·¡½ºÀÇ ¿¹¿Ü°¡ ¹ß°ßµÇÁö ¾Ê¾Ò´ø °æ¿ì´Â false (À»)¸¦ µ¹·ÁÁÖ¾î, ¹ß°ßµÇ¾úÀ» °æ¿ì´Â ¿¹¿ÜÀÇ ¹è¿­À» µ¹·ÁÁÝ´Ï´Ù.

  • renderExceptions($flag) (Àº)´Â, ¿¹¿Ü°¡ ¹ß»ýÇß´ÂÁö¸¦ ³ªÅ¸³»´Â Ç÷¡±×¸¦ ¼³Á¤ÇÕ´Ï´Ù.

7.9.5. ¸®½ºÆù½º ¿ÀºêÁ§Æ®ÀÇ ¼­ºê Ŭ·¡½ºÀÇ ÀÛ¼º

¸®½ºÆù½º ¿ÀºêÁ§Æ®ÀÇ ¿ªÇÒÀº, ´Ù¾çÇÑ ¾×¼ÇÀ̳ª Ç÷¯±× ÀÎÀ¸·ÎºÎÅÍ Çì´õ³ª ÄÁÅÙÃ÷¸¦ ¼öÁýÇØ, ±×°ÍÀ» Ŭ¶óÀÌ¾ðÆ®¿¡ µ¹·ÁÁÖ´Â °ÍÀÔ´Ï´Ù. °Ô´Ù°¡ ó¸®Áß¿¡ ¹ß»ýÇÑ ¿¡·¯ÀÇ ³»¿ëµµ ¼öÁýÇÕ´Ï´Ù. À̰ÍÀº ±×´ë·Î µ¹·ÁÁֱ⵵ Çϰí, ȤÀº À¯Àú·ÎºÎÅÍ ¾Èº¸ÀÌ°Ô ¼û±â±âµµ ÇÕ´Ï´Ù.

¸®½ºÆù½º Ŭ·¡½ºÀÇ base class´Â Zend_Controller_Response_Abstract ÀÔ´Ï´Ù.¸®½ºÆù½º Ŭ·¡½º¸¦ ÀÛ¼ºÇÒ ¶§ , ÀÌ Å¬·¡½º ȤÀº ±× »ó¼Ó Ŭ·¡½ºÀÇ ¾î´ÀÂÊÀ̵çÀ» °è½ÂÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ÀÌ Å¬·¡½º°¡ Á¦°øÇÏ´Â ¸Þ¼Òµå¿¡ ´ëÇØ¼­´Â, ¹æ±ÝÀü ¼³¸íÇß½À´Ï´Ù.

¸®½ºÆù½º ¿ÀºêÁ§Æ®ÀÇ ¼­ºê Ŭ·¡½º¸¦ ÀÛ¼ºÇÏ´Â ÀÌÀ¯·Î¼­´Â, ¸®Äù½ºÆ® µÈ ȯ°æ¿¡ µû¶ó Ãâ·Â ³»¿ëÀ» ¹Ù²Ù°Å³ª (¿¹¸¦ µé¾î CLI (ÀÌ)³ª PHP-GTK ÀÇ °æ¿ì´Â Çì´õ¸¦ ¼Û½ÅÇÏÁö ¾Ê´Â µî) À̸§ ´ÙÇØ ¼¼±×¸ÕÆ®(segment)¿¡ º¸Á¸µÈ ³»¿ëÀÇ ÃÖÁ¾ °á°ú¸¦ µ¹·ÁÁÖ´Â ±â´ÉÀ» Ãß°¡Çϰųª¶ó°í Çß´ø °ÍÀÌ »ý°¢ÇÒ ¼ö ÀÖ½À´Ï´Ù.