¸ñÂ÷
Zend_Controller
(Àº)´Â, ¸ðµ¨ - ºä - ÄÜÆ®·Ñ·¯ (MVC) ÆÐÅÏ¿¡
±Ù°ÅÇÑ À¥ »çÀÌÆ®¸¦ ±¸ÃàÇϱâ À§ÇÑ ±âº» ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù.
Zend_Controller
(Àº)´Â °æ·®À¸·Î ºÎÇ°È µÇ°í ÀÖ¾î È®ÀåÇϱ⠽±°Ô
¼³°èµÇ°í ÀÖ½À´Ï´Ù. ÀÌ ¼³°è´Â, À¯¿¬¼º ¹× ÀÌ¿ëÀÚ¿¡ ´ëÇÑ ÀÚÀ¯µµ¸¦ È®º¸Çϱâ À§ÇÑ ÃÖÀúÇÑÀÇ °ÍÀ̸ç, Zend_Controller
(À»)¸¦
»ç¿ëÇØ ±¸ÃàÇÑ ½Ã½ºÅÛÀº, °ÅÀÇ °°Àº ÄÚµå ¹èÄ¡¡¤±Ô¾àÀ» °øÀ¯ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Zend_Controller
ÀÇ Ã³¸®ÀÇ È帧Àº, ¸î°³ÀÇ ºÎǰ¿¡ Çì¾îÁ® ½ÇÀåµÇ°í
ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ºÎǰÀÇ ¸ðµç °ÍÀ» ¿Ïº®ÇÏ°Ô ÀÌÇØÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù¸¸, ó¸®ÀÇ °³¿ä¸¦ ¾Ë¾Æ µÎ´Â °ÍÀº À¯¿ëÇÕ´Ï´Ù.
Zend_Controller_Front
(Àº)´Â, Zend_Controller
ÀÇ
ó¸® Àüü¸¦ Á¤¸®ÇÕ´Ï´Ù. FrontController ÆÐÅϸ»ÇÕ´Ï´Ù. ¼¹ö·ÎºÎÅÍ ¹ÞÀº ¸ðµç ¸®Äù½ºÆ®¸¦ Zend_Controller_Front
ÇÏÁö¸¸
ó¸®ÇØ, ÃÖÁ¾ÀûÀ¸·Î ¸®Äù½ºÆ®¸¦ ActionController (Zend_Controller_Action
)
¿¡ À§¾ç ÇÕ´Ï´Ù.
Zend_Controller_Request_Abstract
(Àº)´Â ¸®Äù½ºÆ®
ȯ°æÀ» ³ªÅ¸³», ÄÜÆ®·Ñ·¯¸íÀ̳ª ¾×¼Ç¸í ±×¸®°í ¸®Äù½ºÆ® ÆÄ¶ó¹ÌÅ͸¦ ¼³Á¤Çϰųª ÃëµæÇϰųª ÇÏ´Â ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. °Ô´Ù°¡ ¾×¼ÇÀÌ Zend_Controller_Dispatcher
±×¸®°í
µð½ºÆÌÄ¡ µÇ¾ú´ÂÁö¸¦ ÃßÀûÇÏ´Â ±â´Éµµ ÀÖ½À´Ï´Ù. ÀÌ Ãß»ó ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®¸¦ È®ÀåÇØ, ¸®Äù½ºÆ® Á¤º¸¸¦ ĸ½¶ÈÇÕ´Ï´Ù.°Å±â¿¡ µû¸£°í,
¶ó¿ìÅÍ´Â ¸®Äù½ºÆ®ÀÇ Á¤º¸¸¦ ÃëµæÇØ ÄÜÆ®·Ñ·¯¿Í ¾×¼ÇÀ» °áÁ¤ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
µðÆúÆ®¿¡¼´Â Zend_Controller_Request_Http
ÇÏÁö¸¸ ÀÌ¿ëµË´Ï´Ù.À̰ÍÀº,HTTP
¸®Äù½ºÆ® ȯ°æ Àüü¿¡ÀÇ ¾×¼¼½º ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù.
Zend_Controller_Router_Interface
(À»)¸¦ »ç¿ëÇØ
¶ó¿ìÅ͸¦ Á¤ÀÇÇÕ´Ï´Ù. ·çÆÃÀ̶õ, ¸®Äù½ºÆ®ÀÇ ³»¿ëÀ» Á¶»çÇϰí, ±× ¸®Äù½ºÆ®¸¦ ó¸®ÇÏ´Â ÄÜÆ®·Ñ·¯¿Í ¾×¼ÇÀ» °áÁ¤Çϴ ó¸®ÀÔ´Ï´Ù. ÀÌ
ÄÜÆ®·Ñ·¯¿Í ¾×¼Ç, ±×¸®°í ¸®Äù½ºÆ® ÆÄ¶ó¹ÌÅͰ¡ ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®·Î ¼³Á¤µÇ¾î Zend_Controller_Dispatcher_Standard
±×¸®°í
󸮵˴ϴÙ. ·çÆÃÀÌ ¹ß»ýÇÏ´Â °ÍÀº ÇÑ ¹ø¸¸, Áï ÃÖÃÊ·Î ¸®Äù½ºÆ®¸¦ ¹Þ°í ³ª¼ ÃÖÃÊÀÇ ÄÜÆ®·Ñ·¯¿¡ µð½ºÆÌÄ¡ µÉ ¶§±îÁö ¸¸ÀÔ´Ï´Ù.
µðÆúÆ®ÀÇ ¶ó¿ìÅÍ´Â Zend_Controller_Router_Rewrite
ÀÔ´Ï´Ù.
µðÆúÆ®ÀÇ ¶ó¿ìÅÍÀÌ´Ù Zend_Controller_Router_Rewrite
(Àº)´Â, Zend_Controller_Request_Http
±×¸®°í
ÁöÁ¤µÇ¾ú´Ù URI (À»)¸¦ ¹Þ¾Æ ±×°ÍÀ» ºÐÇØÇØ, ÄÜÆ®·Ñ·¯³ª ¾×¼Ç, ±×¸®°í URL ¿¡ Æ÷ÇÔµÈ ÆÐ½ºÀÇ ÆÄ¶ó¹ÌÅ͸¦ ÃëµæÇÕ´Ï´Ù. ¿¹¸¦
µé¾î,http://localhost/foo/bar/key/value
(¿Í)°ú °°Àº
URL ÀÇ °æ¿ì´Â foo
ÇÏÁö¸¸ ÄÜÆ®·Ñ·¯, bar
ÇÏÁö¸¸
¾×¼Ç, ±×¸®°í ÆÄ¶ó¹ÌÅÍ key
ÀÇ °ªÀ¸·Î ÇØ¼ value
(À»)¸¦
ÃëµæÇÕ´Ï´Ù.
Zend_Controller_Router_Rewrite
(Àº)´Â, ÀÓÀÇÀÇ
ÆÐ½º¿¡ ¼º³É ½Ãų ¼öµµ ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ °ÍÀº Ç×7.4.3.
¡¸Zend_Controller_Router_Rewrite ¡¹ (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.
Zend_Controller_Dispatcher_Interface
(À»)¸¦
»ç¿ëÇØ µð½ºÆÖÃĸ¦ Á¤ÀÇÇÕ´Ï´Ù.µð½ºÆÌÄ¡¶õ, ÄÜÆ®·Ñ·¯¿Í ¾×¼ÇÀ» ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®·ÎºÎÅÍ ¹Þ¾Æ, ±×°ÍÀ» ½ÇÁ¦ÀÇ ÄÜÆ®·Ñ·¯ ÆÄÀÏ/ Ŭ·¡½º¿Í
¸Þ¼Òµå¿¡ ´ëÀÀ½ÃŰ´Â ó¸®ÀÔ´Ï´Ù. ÄÜÆ®·Ñ·¯³ª ¾×¼ÇÀÌ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â, µðÆúÆ®ÀÇ ÄÜÆ®·Ñ·¯³ª ¾×¼Ç¿¡ µð½ºÆÌÄ¡ ÇÕ´Ï´Ù.
½ÇÁ¦ÀÇ µð½ºÆÌÄ¡ 󸮿¡¼´Â, ÄÜÆ®·Ñ·¯ Ŭ·¡½ºÀÇ ÀνºÅϽºÀÇ ÀÛ¼º°ú ±× Ŭ·¡½ºÀÇ ¾×¼Ç ¸Þ¼ÒµåÀÇ ÄÝÀ» ½Ç½ÃÇÕ´Ï´Ù. ·çÆÃÀº ÇÑ ¹ø ¹Û¿¡ ¹ß»ýÇÏÁö ¾Ê½À´Ï´Ù¸¸, ±×°Í°ú´Â ´Þ¶ó µð½ºÆÌÄ¡´Â ¹Ýº¹ÇØ ¹ß»ýÇÕ´Ï´Ù. ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®ÀÇ µð½ºÆÌÄ¡ »óŰ¡ ¸®¼ÂÆ® µÇ¸é ·çÇÁ°¡ Àç°³µÇ¾î ÇöÀç ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®·Î ¼³Á¤µÇ¾î ÀÖ´Â ¾×¼ÇÀÌ ÄÝ µË´Ï´Ù. ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®ÀÇ µð½ºÆÌÄ¡ »óŰ¡ (true ¿¡) ¼³Á¤µÈ »óÅ·Π·çÇÁ°¡ Á¾·áÇϸé, 󸮰¡ Á¾·áÇÕ´Ï´Ù.
µðÆúÆ®ÀÇ µð½ºÆÖÃÄ´Â Zend_Controller_Dispatcher_Standard
ÀÔ´Ï´Ù.
À̰ÍÀº,CamelCasedClasses Çü½ÄÀÇ À̸§ÀÇ ¸¶Áö¸·¿¡ Controller ÇÏÁö¸¸ ºÙÀº Ŭ·¡½º¸¦ ÄÜÆ®·Ñ·¯·Î¼ »ç¿ëÇØ,
¾×¼Ç ¸Þ¼ÒµåÀÇ À̸§Àº camelCasedMethods Çü½Ä ( ¸¶Áö¸·¿¡ Action (À»)¸¦ ºÙÀδÙ) µË´Ï´Ù.¿¹¸¦ µé¾î SomeFooController::barAction
(¿Í)°ú
°°Àº °æ¿ì, ÄÜÆ®·Ñ·¯´Â somefoo
, ¾×¼ÇÀº bar
µË´Ï´Ù.
Zend_Controller_Action
(Àº)´Â ÄÜÆ®·Ñ·¯ÀÇ ±âÀú ÄÄÆÛ³ÍÆ®ÀÔ´Ï´Ù.
°¢ ÄÜÆ®·Ñ·¯´Â ÀÌ Zend_Controller_Action
Ŭ·¡½º¸¦ °è½ÂÇØ ÀÛ¼ºÇÕ´Ï´Ù.ÀÌ
Ŭ·¡½º¿¡¼´Â ¾×¼Ç ¸Þ¼Òµå¸¦ Á¤ÀÇÇÕ´Ï´Ù.
Zend_Controller_Response_Abstract
(Àº)´Â ±âÀú
¸®½ºÆù½º Ŭ·¡½º¿¡¼, ¾×¼Ç ÄÜÆ®·Ñ·¯·ÎºÎÅÍÀÇ ÀÀ´ä ³»¿ëÀ» ¼öÁýÇØ, ±×°ÍÀ» ¸®½ºÆù½º·Î¼ µ¹·ÁÁÝ´Ï´Ù.À̰ÍÀº Çì´õ¿Í º»¹®ÀÇ ¾çÂÊ ¸ðµÎ¸¦
¼öÁýÇÕ´Ï´Ù. ¶Ç,__toString()
(À»)¸¦ ½ÇÀåÇϰí ÀÖÀ¸¹Ç·Î, ±×°ÍÀ» Á÷Á¢
Ãâ·ÂÇØ Çì´õ¿Í º»¹®À» ÇÑ ¹ø¿¡ ¼Û½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù.
µðÆúÆ®ÀÇ ¸®½ºÆù½º Ŭ·¡½º´Â Zend_Controller_Response_Http
±×¸®°í,
À̰ÍÀº HTTP ȯ°æ¿¡¼ÀÇ »ç¿ë¿¡ ÀûÀýÇϰí ÀÖ½À´Ï´Ù.
Zend_Controller
ÀÇ Ã³¸®ÀÇ È帧Àº ºñ±³Àû ½ÉÇÃÇÕ´Ï´Ù. Zend_Controller_Front
ÇÏÁö¸¸
¸®Äù½ºÆ®¸¦ ¹Þ¾Æ, Zend_Controller_Router_Rewrite
(À»)¸¦ ÄÝ
Çϰí, ¹è¼Ûó°¡ µÇ´Â ÄÜÆ®·Ñ·¯ ( ±×¸®°í ÄÜÆ®·Ñ·¯³»ÀÇ ¾×¼Ç) (À»)¸¦ °áÁ¤ÇÕ´Ï´Ù.Zend_Controller_Router_Rewrite
ÇÏ
URI (À»)¸¦ ºÐÇØÇØ, ¸®Äù½ºÆ®·ÎºÎÅÍ ÄÜÆ®·Ñ·¯¸í°ú ¾×¼Ç¸íÀ» ÃëµæÇÕ´Ï´Ù. ±× ÈÄ,Zend_Controller_Front
(Àº)´Â
µð½ºÆÌÄ¡¸£ÇÁ¿¡ µ¹ÀÔÇÕ´Ï´Ù. ¿ì¼± Zend_Controller_Dispatcher_Standard
(À»)¸¦
ÄÝ ÇØ °Å±â¿¡ ¸®Äù½ºÆ®¸¦ °Ç³×ÁÖ¾î, ¸®Äù½ºÆ®·Î ÁöÁ¤µÈ ÄÜÆ®·Ñ·¯¿Í ¾×¼ÇÀ» ÃëµæÇÕ´Ï´Ù ( ȤÀº µðÆúÆ®¸¦ »ç¿ëÇÕ´Ï´Ù) . ÄÜÆ®·Ñ·¯°¡ Á¾·áÇϸé,
󸮴 Zend_Controller_Front
¿¡ µ¹¾Æ¿É´Ï´Ù.¸®Äù½ºÆ®ÀÇ µð½ºÆÌÄ¡ »óŰ¡
¸®¼ÂÆ® µÇ¾î ´Ù¸¥ ÄÜÆ®·Ñ·¯¸¦ µð½ºÆÌÄ¡ Çϵµ·Ï(µíÀÌ) Áö½Ã¹Þ¾ÒÀ» °æ¿ì´Â, ·çÇÁ°¡ °è¼ÓµÇ¾î ´ÙÀ½ÀÇ ¹è¼Û 󸮸¦ ÇÕ´Ï´Ù. ±× ÀÌ¿ÜÀÇ °æ¿ì´Â,
󸮰¡ °Å±â¼ Á¾·áÇÕ´Ï´Ù.±× ÀÌ¿ÜÀÇ °æ¿ì´Â, 󸮰¡ Á¾·áÇÕ´Ï´Ù.
¸®Äù½ºÆ® ¿ÀºêÁ§Æ®¶õ Zend_Controller_Front
(¿Í)°ú ¶ó¿ìÅÍ, µð½ºÆÖÃÄ
±×¸®°í ÄÜÆ®·Ñ·¯ Ŭ·¡½ºÀÇ »çÀÌ¿¡ ±³È¯µÇ´Â ´Ü¼øÇÑ ¹ë·ù ¿ÀºêÁ§Æ®ÀÔ´Ï´Ù. À̰ÍÀº ÄÜÆ®·Ñ·¯, ¾×¼Ç ±×¸®°í ȯ°æ (HTTP ,CLI ,PHP-GTK
µî) ¿¡ ÀÀÇÑ ±× ¿ÜÀÇ ÆÄ¶ó¹ÌÅÍÀÇ ³»¿ëÀ» Áý°èÇÑ °ÍÀÔ´Ï´Ù.
ÄÜÆ®·Ñ·¯¸í¿¡ÀÇ ¾×¼¼½º´Â getControllerName()
¹× setControllerName()
¿¡
ÀÇÇØ¼ ½Ç½ÃÇÕ´Ï´Ù.
ÄÜÆ®·Ñ·¯³»·ÎºÎÅÍ ÄÝ µÇ´Â ¾×¼ÇÀÇ À̸§¿¡ÀÇ ¾×¼¼½º´Â getActionName()
¹× setActionName()
¿¡
ÀÇÇØ¼ ½Ç½ÃÇÕ´Ï´Ù.
¾×¼Ç¿¡°Ô °Ç³×Áö´Â ÆÄ¶ó¹ÌÅʹ Ű/ Ä¡ ÀÇ Æí¼ºÀ¸·ÎºÎÅÍ µÇ´Â ¿¬»ó ¹è¿·Î, getParams()
¹× setParams()
¿¡
ÀÇÇØ¼ ¾×¼¼½º ÇÕ´Ï´Ù. ȤÀº, ±× °³°³ÀÇ µ¥ÀÌÅÍ¿¡´Â getParam()
¹× setParam()
±×¸®°í
¾×¼¼½º ÇÕ´Ï´Ù.
¸®Äù½ºÆ®ÀÇ Çü½Ä¿¡ µû¶ó¼´Â, ±× ÀÌ¿ÜÀÇ ¸Þ¼Òµåµµ »ç¿ë °¡´ÉÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, µðÆúÆ®ÀÇ ¸®Äù½ºÆ®·Î »ç¿ëµÈ´Ù Zend_Controller_Request_Http
±×·³,
¸®Äù½ºÆ® URI (ÀÌ)³ª ÆÐ½º Á¤º¸,$_GET (ÀÌ)³ª $_POST ÆÄ¶ó¹ÌÅ͸¦ ÃëµæÇÏ´Â ¸Þ¼ÒµåµîÀÌ ÀÖ½À´Ï´Ù.
¸®Äù½ºÆ® ¿ÀºêÁ§Æ®´Â ÇÁ·±Æ® ÄÜÆ®·Ñ·¯¿¡°Ô °Ç³×Áý´Ï´Ù. ¸¸¾à ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®°¡ ¾ø¾ú´ø °æ¿ì´Â, µð½ºÆÌÄ¡ ó¸®ÀÇ ÃÖÃÊ ( ·çÆÃÀÌ ¹ß»ýÇϱâ Àü) ¿¡ ÀνºÅϽº°¡ ÀÛ¼ºµË´Ï´Ù.À̰ÍÀº, µð½ºÆÌġüÀÎÀÇ ¸ðµç ¿ÀºêÁ§Æ®¿¡°Ô °Ç³×Á®¼ °©´Ï´Ù.
°Ô´Ù°¡ ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®´Â Å×½ºÆ® ½Ã¿¡µµ À¯¿ëÇÕ´Ï´Ù. °³¹ßÀÚ°¡ ¸®Äù½ºÆ®¸¦ ÀÛ¼ºÇØ, ÄÜÆ®·Ñ·¯³ª ¾×¼Ç, ÆÄ¶ó¹ÌÅͳª URI µîÀ» ÁöÁ¤ÇØ ±×°ÍÀ» ÇÁ·±Æ® ÄÜÆ®·Ñ·¯¿¡ °Ç³×ÁÖ´Â °ÍÀ¸·Î, ¾îÇø®ÄÉÀ̼ÇÀÇ È帧À» Å×½ºÆ®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸®½ºÆù½º ¿ÀºêÁ§Æ®¿Í Á¶ÇÕÇØ »ç¿ëÇϸé, MVC ¾îÇø®ÄÉÀ̼ÇÀÇ Á¤¹ÐÇϰí Á¤È®ÇÑ ´Üü Å×½ºÆ®°¡ °¡´ÉÇØÁý´Ï´Ù.
ù ÄÜÆ®·Ñ·¯¸¦ ¸¸µé±â ½ÃÀÛÇϱâ Àü¿¡, ·çÆÃ 󸮰¡ Zend_Controller_Router_Rewrite
±×¸®°í
¾î¶»°Ô ½ÇÀåµÇ°í ÀÖ´ÂÁö¸¦ ¾Ë Çʿ䰡 ÀÖ°ÚÁö¿ä. ó¸® ¼ø¼·Î¼ ÇÑ ¹ø¸¸ ¹ß»ýÇÏ´Â ·çÆÃ°ú ¹Ýº¹ÇØ ¹ß»ýÇÏ´Â µð½ºÆÌÄ¡°¡ ÀÖ´Â °ÍÀ» ±â¾ïÇØ
µÓ½Ã´Ù.
Zend_Controller_Front
ÇÏ Zend_Controller_Router_Rewrite
(
ȤÀº µû·Î µî·ÏµÈ ¶ó¿ìÅÍ) (À»)¸¦ ÄÝ ÇØ, URI (À»)¸¦ ÄÜÆ®·Ñ·¯¿Í ¾×¼Ç¿¡ ´ëÀÀ½Ãŵ´Ï´Ù. Zend_Controller_Router
ÇÏ
URI (À»)¸¦ ¹Þ¾Æ, ÃÖÀγ»ÀÇ ¶ó¿ìÅÍ ¿ÀºêÁ§Æ®¿¡ °Ç³×ÁÝ´Ï´Ù. µðÆúÆ®¿¡¼´Â,Zend_Controller_Router_Route_Module
(À»)¸¦
»ç¿ëÇØ ÀÔ·Â URL ÀÇ ¼º³ÉÀ» ½Ç½ÃÇÕ´Ï´Ù.¶ó¿ìÅÍ ¿ÀºêÁ§Æ®´Â URL (À»)¸¦ ºÐÇØÇØ, ÄÜÆ®·Ñ·¯¿Í ¾×¼Ç, ±×¸®°í ÆÐ½º¿¡ Æ÷ÇԵǾú´Ù URL
ÆÄ¶ó¹ÌÅ͸¦ ÃëµæÇÕ´Ï´Ù.±×¸®°í ¶ó¿ìÅͰ¡ ±×°ÍµéÀ» ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®¿¡ °Ý³³ÇÕ´Ï´Ù.
Zend_Controller_Router_Route_Module
(Àº)´Â, ¸Å¿ì
½ÉÇÃÇÑ ´ëÀÀ ·ê·Î ÄÜÆ®·Ñ·¯¸í°ú ¾×¼Ç¸íÀ» ÃëµæÇÕ´Ï´Ù.
http://framework.zend.com/controller/action/
À§ÀÇ ¿¹·Î, ÃÖÃÊÀÇ ºÎºÐÀÌ Ç×»ó ÄÜÆ®·Ñ·¯ÀÇ À̸§ÀÌ µÇ¾î, µÎ¹øÂ°ÀÇ ºÎºÐÀÌ Ç×»ó ¾×¼ÇÀÇ À̸§ÀÌ µË´Ï´Ù.
¿É¼ÇÀ¸·Î, ÄÜÆ®·Ñ·¯¿¡ °Ç³×ÁÖ´Â ÆÄ¶ó¹ÌÅ͸¦ URI ¿¡ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀº Ű/ Ä¡ ÀÇ Æí¼ºÀÇ Çü½ÄÀÌ µË´Ï´Ù.
http://framework.zend.com/controller/action/key1/value1/
ÄÜÆ®·Ñ·¯³ª ¾×¼ÇÀÌ URI ÆÐ½º¿¡ Æ÷ÇÔµÇÁö ¾Ê´Â °æ¿ì´Â, Zend_Controller_Dispatcher_Standard
(Àº)´Â
¸®Äù½ºÆ® ¿ÀºêÁ§Æ®ÀÇ ÆÄ¶ó¹ÌÅͷκÎÅÍ °ªÀ» ÃëµæÇÏ·Á°í ÇÕ´Ï´Ù. ±×°Íµµ ¹ß°ßµÇÁö ¾Ê¾Ò´ø °æ¿ì´Â µðÆúƮġ¸¦ »ç¿ëÇÕ´Ï´Ù. µðÆúƮġ´Â, ÄÜÆ®·Ñ·¯µµ
¾×¼Çµµ "index
"
µË´Ï´Ù.ÀÌÇÏ¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
http://framework.zend.com/roadmap/future/
ÄÜÆ®·Ñ·¯: roadmap
¾×¼Ç : future
http://framework.zend.com/roadmap/
ÄÜÆ®·Ñ·¯: roadmap
¾×¼Ç : index
http://framework.zend.com/
ÄÜÆ®·Ñ·¯: index
¾×¼Ç : index
![]() |
À¯¿¬¼º |
---|---|
º¸´Ù À¯¿¬ÇÑ ±â´ÉÀ» »ç¿ëÇÏ°í ½ÍÀº °æ¿ì´Â, Ç×7.4.3. ¡¸Zend_Controller_Router_Rewrite ¡¹ (À»)¸¦ Á¶»çÇØ º¾½Ã´Ù. |
ÄÜÆ®·Ñ·¯ÀÇ À̸§, ÄÜÆ®·Ñ·¯³»ÀÇ ¾×¼ÇÀÇ À̸§, ±×¸®°í ¿É¼ÇÀÇ ÆÄ¶ó¹ÌÅÍÀÇ ³»¿ëÀÌ, ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®¿¡ Á¤¸®ÇÕ´Ï´Ù. Zend_Controller_Front
ÇÏÁö¸¸
µð½ºÆÌÄ¡¸£ÇÁ¿¡ µé¾î°¡¸é, ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®°¡ Zend_Controller_Dispatcher_Standard
¿¡°Ô
°Ç³×Áý´Ï´Ù.
µð½ºÆÌÄ¡ 󸮴Â, ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®¸¦ ¹Þ¾Æ, °Å±â¿¡ Æ÷ÇԵǴ Á¤º¸ ( ÄÜÆ®·Ñ·¯¸í, ¾×¼Ç¸í ¹× ¿É¼ÇÀÇ ÆÄ¶ó¹ÌÅÍ) (À»)¸¦ Àü°³ÇØ,
ÄÜÆ®·Ñ·¯ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇØ ±× ÄÜÆ®·Ñ·¯ÀÇ ¾×¼ÇÀ» ÄÝ ÇÕ´Ï´Ù. ÄÜÆ®·Ñ·¯³ª ¾×¼ÇÀÌ ¹ß°ßµÇÁö ¾Ê´Â °æ¿ì´Â, µðÆúƮġ¸¦ »ç¿ëÇÕ´Ï´Ù.Zend_Controller_Dispatcher_Standard
±×·³,
ÄÜÆ®·Ñ·¯¿Í ¾×¼ÇÀÇ µðÆúÆ®´Â ¾î´ÀÂÊÀ̳ª index
ÀÔ´Ï´Ù.±×·¯³ª, setDefaultController()
¸Þ¼Òµå³ª setDefaultAction()
¸Þ¼Òµå·Î
À̰͵éÀ» º¯°æÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
µð½ºÆÌÄ¡ 󸮰¡ ¹ß»ýÇÏ´Â °ÍÀº, ÇÁ·±Æ® ÄÜÆ®·Ñ·¯·ÎÀÇ ·çÇÁÀÇ ³»ºÎÀÔ´Ï´Ù. µð½ºÆÌÄ¡ 󸮸¦ ½Ç½ÃÇϱâ Àü¿¡, ÇÁ·±Æ® ÄÜÆ®·Ñ·¯´Â ·çÆÃÀ» ½Ç½ÃÇØ, À¯Àú°¡ ÁöÁ¤ÇÑ ÄÜÆ®·Ñ·¯¿Í ¾×¼Ç, ±×¸®°í Ãß°¡ÀÇ ÆÄ¶ó¹ÌÅ͸¦ ÃëµæÇÕ´Ï´Ù. ±×¸®°í µð½ºÆÌÄ¡¸£ÇÁ¿¡ µé¾î°¡, ¸®Äù½ºÆ®¸¦ ¹è¼ÛÇÕ´Ï´Ù.
·çÇÁ³»¿¡¼´Â, ¿ì¼± ÃÖÃÊ·Î ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®ÀÇ Ç÷¡±×¸¦ ¼³Á¤ÇÕ´Ï´Ù. ÀÌ Ç÷¡±×´Â, ¾×¼ÇÀÌ µð½ºÆÌÄ¡ µÈ °ÍÀ» ³ªÅ¸³» º¸ÀÌ´Â °ÍÀÔ´Ï´Ù. ¾×¼Ç³»³ª pre/postDispatch Ç÷¯±× ÀÎÀ¸·Î ÀÌ Ç÷¡±×¸¦ ¸®¼ÂÆ® Çϸé, µð½ºÆÌÄ¡¸£ÇÁ°¡ ±×´ë·Î °è¼ÓµÇ¾î Çѹø ´õ ¸®Äù½ºÆ®¸¦ ó¸®ÇÏ·Á°í ÇÕ´Ï´Ù. ¸®Äù½ºÆ®³»ÀÇ ÄÜÆ®·Ñ·¯³ª ¾×¼ÇÀ» º¯°æÇØ Ç÷¡±×¸¦ ¸®¼ÂÆ® ÇÏ´Â °ÍÀ¸·Î, ´Ù¾çÇÑ ¸®Äù½ºÆ®¸¦ °è¼ÓÇØ ½ÇÇà½Ãų ¼ö ÀÖ½À´Ï´Ù.
ÀÌ·¯ÇÑ µð½ºÆÌÄ¡ 󸮸¦ Á¦¾îÇÑ´Ù ¾×¼Ç ÄÜÆ®·Ñ·¯ÀÇ ¸Þ¼Òµå°¡ _forward()
ÀÔ´Ï´Ù.
ÀÌ ¸Þ¼Òµå¸¦ pre/postDispatch() (ÀÌ)³ª ¾×¼Ç ¸Þ¼Òµå·Î ÄÝ ÇØ, ÄÜÆ®·Ñ·¯³ª ¾×¼Ç, ±×¸®°í »õ·Î¿î ¾×¼Ç¿¡ º¸³»°í ½ÍÀº
Ãß°¡ÀÇ ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤ÇÕ´Ï´Ù.
public function myAction()
{
//
¹«¾ùÀΰ¡ÀÇ Ã³¸®¸¦ ÇØ...
//
ÇöÀçÀÇ ¸ðµâ³»ÀÇ ´Ù¸¥ ¾×¼Ç FooController::barAction()
¿¡ Àü¼Û ÇÕ´Ï´Ù
$this->_forward('bar', 'foo', null, array('baz' => 'bogus'));
}
¸®½ºÆù½º ¿ÀºêÁ§Æ®´Â, ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®¿Í ´ë°¡ µÇ´Â °ÍÀÔ´Ï´Ù. ±× ¸ñÀûÀº, ÄÁÅÙÃ÷³ª Çì´õ¸¦ ¼öÁýÇØ, ±×°ÍÀ» µ¹·ÁÁÖ´Â °ÍÀÔ´Ï´Ù.
°Ô´Ù°¡ ÇÁ·±Æ® ÄÜÆ®·Ñ·¯·Î Æ÷ÂøÇÑ ¿¹¿Ü´Â ¸ðµÎ ¸®½ºÆù½º ¿ÀºêÁ§Æ®¿¡°Ô °Ç³×Áý´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, ¿¹¿ÜÀÇ Ã³¸®°¡ Çϱ⠽¬¿öÁý´Ï´Ù. ÀÌ °Åµ¿À»
º¯°æÇÏ·Á¸é Zend_Controller_Front::throwExceptions(true)
(À»)¸¦
¼³Á¤ÇÕ´Ï´Ù.
$front->throwExceptions(true);
Çì´õ¸¦ Æ÷ÇÔÇÑ ¸®½ºÆù½º Ãâ·ÂÀ» ¼Û½ÅÇÏ·Á¸é , sendOutput()
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
$response->sendOutput();
°³¹ßÀÚ´Â, ¾×¼Ç ÄÜÆ®·Ñ·¯ Áß(¾È)¿¡¼ ¸®½ºÆù½º ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. Ãâ·ÂÀ» Á÷Á¢ ·»´õ¸µ Çϰųª Á÷Á¢ Çì´õ¸¦ ¼Û½ÅÇϰųª ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó, ±×°ÍµéÀ» ¸®½ºÆù½º ¿ÀºêÁ§Æ®¿¡ °Ý³³Çϵµ·Ï(µíÀÌ) ÇÕ´Ï´Ù.
//
¾×¼Ç ÄÜÆ®·Ñ·¯ÀÇ ¾×¼Ç³»¿¡¼,
//
Çì´õ¸¦ ¼³Á¤ÇÕ´Ï´Ù
$this->getResponse()
->setHeader('Content-Type', 'text/html')
->appendBody($content);
ÀÌ·¸°Ô ÇÏ´Â °ÍÀ¸·Î, ¸ðµç Çì´õ¸¦ ÇÑ ¹ø¿¡ ¼Û½ÅÇØ, ±× ´ÙÀ½¿¡ ÄÁÅÙÃ÷¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
¾îÇø®ÄÉÀ̼ÇÀ¸·Î ¿¹¿Ü°¡ ¹ß»ýÇß´ÂÁö¸¦ Á¶»çÇÏ·Á¸é , ¸®½ºÆù½º ¿ÀºêÁ§Æ®ÀÇ 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->sendOutput();
//
ȤÀº
$front->throwExceptions(true);
$front->dispatch();