ÄÜÆ®·Ñ·¯¿¡´Â Ç÷¯±× ÀÎ ±â±¸°¡ Â¥³Ö¾îÁö°í ÀÖ¾î ÄÜÆ®·Ñ·¯ÀÇ Ã³¸®Áß¿¡ À̺¥Æ®°¡ ¹ß»ýÇßÀ» ¶§¿¡ À¯ÀúÀÇ Äڵ带 ÄÝ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÁ·±Æ® ÄÜÆ®·Ñ·¯´Â, Ç÷¯±× ÀÎ ºê·ÎÄ¿¿¡ À¯ÀúÀÇ Ç÷¯±× ÀÎÀ» µî·ÏÇÕ´Ï´Ù. ±×¸®°í, À̺¥Æ® ¸Þ¼Òµå°¡ ÄÝ µÇ¾úÀ» ¶§¿¡, ÇÁ·±Æ® ÄÜÆ®·Ñ·¯¿¡ µî·ÏµÇ¾î ÀÖ´Â Ç÷¯±× ÀÎÀ» Ç÷¯±× ÀÎ ºê·ÎÄ¿°¡ ½ÇÇàÇÕ´Ï´Ù.
À̺¥Æ® ¸Þ¼Òµå´Â, Ãß»ó Ŭ·¡½º Zend_Controller_Plugin_Abstract
±×¸®°í
Á¤Àǵǰí ÀÖ½À´Ï´Ù. À¯Àú°¡ ÀÛ¼ºÇÏ´Â Ç÷¯±× ÀΠŬ·¡½º´Â, À̰ÍÀ» °è½Â½Ãŵ´Ï´Ù.
routeStartup()
(Àº)´Â,Zend_Controller_Front
ÇÏÁö¸¸
·çÆ®¿¡ ´ëÇÑ ¸®Äù½ºÆ®ÀÇ Æò°¡¸¦ ½ÃÀÛÇϱâ Àü¿¡ ÄÝ µË´Ï´Ù.
routeShutdown()
(Àº)´Â,Zend_Controller_Router
(ÀÌ)°¡
Á¾·áµÈ ÈÄ,Zend_Controller_Front ÇÏÁö¸¸ ¶ó¿ìÅͷκÎÅÍ ºüÁú ¶§¿¡ ÄÝ µË´Ï´Ù.
dispatchLoopStartup()
(Àº)´Â,Zend_Controller_Front
ÇÏÁö¸¸
µð½ºÆÌÄ¡¸£ÇÁ¿¡ µé¾î°¡±â Àü¿¡ ÄÝ µË´Ï´Ù.
preDispatch()
(Àº)´Â, ¾×¼ÇÀÌ Zend_Controller_Dispatcher
±×¸®°í
µð½ºÆÌÄ¡ µÇ±â Àü¿¡ ÄÝ µË´Ï´Ù. ÀÌ ÄݹéÀº, ÇÁ·Ï½Ã³ª ÇÊÅÍÀûÀÎ µ¿ÀÛÀ» ½Ãų ¼ö ÀÖ½À´Ï´Ù. ¸®Äù½ºÆ®ÀÇ ³»¿ëÀ» º¯°æÇØ µð½ºÆÌÄ¡ÈĶó±×¸¦
¸®¼ÂÆ® (Zend_Controller_Request_Abstract::setDispatched(false)
(À»)¸¦
»ç¿ëÇÕ´Ï´Ù) ÇÏ´Â °ÍÀ¸·Î, ÇöÀçÀÇ ¾×¼ÇÀ» ½ºÅµ ½Ãų ¼ö ÀÖ½À´Ï´Ù.
postDispatch()
(Àº)´Â, ¾×¼ÇÀÌ Zend_Controller_Dispatcher
±×¸®°í
µð½ºÆÌÄ¡ µÈ ÈÄ¿¡ ÄÝ µË´Ï´Ù. ÀÌ ÄݹéÀº, ÇÁ·Ï½Ã³ª ÇÊÅÍÀûÀÎ µ¿ÀÛÀ» ½Ãų ¼ö ÀÖ½À´Ï´Ù. ¸®Äù½ºÆ®ÀÇ ³»¿ëÀ» º¯°æÇØ µð½ºÆÌÄ¡ÈĶó±×¸¦
¸®¼ÂÆ® (Zend_Controller_Request_Abstract::setDispatched(false)
(À»)¸¦
»ç¿ëÇÕ´Ï´Ù) ÇÏ´Â °ÍÀ¸·Î, »õ·Î¿î µð½ºÆÌġó ¾×¼ÇÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
dispatchLoopShutdown()
(Àº)´Â,Zend_Controller_Front
ÇÏÁö¸¸
µð½ºÆÌÄ¡¸£ÇÁ¸¦ ºüÁö±â Àü¿¡ ÄÝ µË´Ï´Ù.
Ç÷¯±× ÀΠŬ·¡½º¸¦ ¾²·Á¸é , ´ÜÁö Ãß»ó Ŭ·¡½º Zend_Controller_Plugin_Abstract
(À»)¸¦
ÀÎŬ·çµå ÇØ ±×°ÍÀ» °è½ÂÇÒ »ÓÀÔ´Ï´Ù.
<?php
require_once 'Zend/Controller/Plugin/Abstract.php';
class MyPlugin extends Zend_Controller_Plugin_Abstract
{
// ...
}
Zend_Controller_Plugin_Abstract
¿¡´Â Ãß»ó ¸Þ¼Òµå´Â ¾ø½À´Ï´Ù.
Áï, À§¿¡ ³ªÅ¸³½ À̺¥Æ® ¸Þ¼Òµå¸¦, Ç÷¯±× ÀΠŬ·¡½º Å«µé¾Ê°í ½ÇÀåÇØ¾ß ÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. Ç÷¯±× ÀÎÀÇ ÀÛÀÚ°¡, ÇÊ¿äÇÑ °Í¸¸À» ¼±ÅÃÇØ
½ÇÀåÇÒ ¼ö ÀÖ½À´Ï´Ù.
Zend_Controller_Plugin_Abstract
±×·³, ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®³ª
¸®½ºÆù½º ¿ÀºêÁ§Æ®¸¦ Ç÷¯±× ÀÎÀ¸·ÎºÎÅÍ Á¶ÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. °¢°¢,getRequest()
¸Þ¼Òµå
¹× getResponse()
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
Ç÷¯±× ÀΠŬ·¡½º¸¦ µî·ÏÇÏ·Á¸é , µð½ºÆÌÄ¡ÀÇ Àü¿¡ Zend_Controller_Front::registerPlugin()
(À»)¸¦
ÄÝ ÇÕ´Ï´Ù. ´ÙÀ½ÀÇ ¿¹´Â, ÄÜÆ®·Ñ·¯ ÃÖÀÎÀ¸·Î Ç÷¯±× ÀÎÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀ» ³ªÅ¸³»´Â °ÍÀÔ´Ï´Ù.
<?php
require_once 'Zend/Controller/Front.php';
require_once 'Zend/Controller/Router.php';
require_once 'Zend/Controller/Plugin/Abstract.php';
class MyPlugin extends Zend_Controller_Plugin_Abstract
{
public function routeStartup()
{
$this->getResponse()->appendBody('<p>routeStartup()
ÇÏÁö¸¸ ÄÝ µÇ¾ú½À´Ï´Ù</p>');
}
public function routeShutdown($request)
{
$this->getResponse()->appendBody('<p>routeShutdown()
ÇÏÁö¸¸ ÄÝ µÇ¾ú½À´Ï´Ù</p>');
}
public function dispatchLoopStartup($request)
{
$this->getResponse()->appendBody('<p>dispatchLoopStartup()
ÇÏÁö¸¸ ÄÝ µÇ¾ú½À´Ï´Ù</p>');
}
public function preDispatch($request)
{
$this->getResponse()->appendBody('<p>preDispatch()
ÇÏÁö¸¸ ÄÝ µÇ¾ú½À´Ï´Ù</p>');
}
public function postDispatch($request)
{
$this->getResponse()->appendBody('<p>postDispatch()
ÇÏÁö¸¸ ÄÝ µÇ¾ú½À´Ï´Ù</p>');
}
public function dispatchLoopShutdown()
{
$this->getResponse()->appendBody('<p>dispatchLoopShutdown()
ÇÏÁö¸¸ ÄÝ µÇ¾ú½À´Ï´Ù</p>');
}
}
$controller = Zend_Controller_Front::getInstance();
$controller->setControllerDirectory('/path/to/controllers')
->setRouter(new Zend_Controller_Router())
->registerPlugin(new MyPlugin());
$response = $controller->dispatch();
echo $response;