Á¦7 Àå Zend_Controller

¸ñÂ÷

7.1. °³¿ä
7.1.1. µµÀÔ
7.1.2. ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®
7.1.3. ·çÆÃ ó¸®
7.1.4. µð½ºÆÌÄ¡ ó¸®
7.1.5. ¸®½ºÆù½º ¿ÀºêÁ§Æ®
7.2. ÀÚ, ½ÃÀÛÇսôÙ
7.2.1. µµÀÔ
7.2.2. ¼­¹öÀÇ ¼³Á¤
7.2.3. ±âµ¿¿ë ÆÄÀÏ
7.2.4. µð·ºÅ丮 ±¸Á¶
7.2.5. µðÆúÆ®ÀÇ ÄÜÆ®·Ñ·¯
7.3. ¼­ºê Ŭ·¡½ºÈ­
7.3.1. µµÀÔ
7.3.2. ±Ô¾à
7.3.3. ÇÁ·±Æ® ÄÜÆ®·Ñ·¯
7.3.4. ¸®Äù½ºÆ®ÀÇ Ãß»óÈ­
7.3.5. ¶ó¿ìÅÍÀÇ ÀÎÅÍÆäÀ̽º
7.3.6. µð½ºÆÖÃÄÀÇ ÀÎÅÍÆäÀ̽º
7.3.7. ¾×¼Ç ÄÜÆ®·Ñ·¯
7.3.8. ¸®½ºÆù½º ¿ÀºêÁ§Æ®
7.4. Á¦°øµÇ´Â ¼­ºê Ŭ·¡½º±º
7.4.1. µµÀÔ
7.4.2. Zend_Controller_Request_Http
7.4.3. Zend_Controller_Router_Rewrite
7.4.4. Zend_Controller_Response_Http
7.4.5. Zend_Controller_Response_Cli
7.5. ¾×¼Ç ÄÜÆ®·Ñ·¯
7.5.1. µµÀÔ
7.5.2. ¿ÀºêÁ§Æ®ÀÇ ÃʱâÈ­
7.5.3. µð½ºÆÌÄ¡ ÀüÈÄÀÇ ÈÅ
7.5.4. ¾×¼¼½º¿ë ¸Þ¼Òµå
7.5.5. À¯Æ¿¸®Æ¼ ¸Þ¼Òµå
7.6. Ç÷¯±× ÀÎ
7.6.1. µµÀÔ
7.6.2. Ç÷¯±× ÀÎÀÇ ¾²´Â ¹ý
7.6.3. Ç÷¯±× ÀÎÀÇ »ç¿ë¹ý
7.7. ¸ðµâ·¯ µð·ºÅ丮 ±¸Á¶ÀÇ ±Ô¾àÀÇ »ç¿ë
7.7.1. µµÀÔ
7.7.2. ¸ðµâ ÄÜÆ®·Ñ·¯ µð·ºÅ丮ÀÇ ÁöÁ¤
7.7.3. ¸ðµâ¿¡ÀÇ ·çÆÃ
7.7.4. ¸ðµâ ȤÀº ±Û·Î¹úÀÇ µðÆúÆ® ÄÜÆ®·Ñ·¯
7.8. MVC (À¸)·ÎÀÇ ¿¹¿Ü
7.8.1. µµÀÔ
7.8.2. ¿¹¿Ü¸¦ ó¸®ÇÏ´Â ¹æ¹ýÀº?
7.8.3. MVC ±×¸®°í Á¶¿ìÇÒ ¿¹¿Ü
7.9. ÀÌÀüÀÇ ¹öÁ¯À¸·ÎºÎÅÍÀÇ ÀÌÇà
7.9.1. 0.6.0 (À¸)·ÎºÎÅÍ 0.8.0 ¿¡ÀÇ ÀÌÇà
7.9.2. 0.2.0 ÀÌÀüÀÇ ¹öÁ¯À¸·ÎºÎÅÍ 0.6.0 ¿¡ÀÇ ÀÌÇà

7.1. °³¿ä

7.1.1. µµÀÔ

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 ¿¡ µ¹¾Æ¿É´Ï´Ù.¸®Äù½ºÆ®ÀÇ µð½ºÆÌÄ¡ »óŰ¡ ¸®¼ÂÆ® µÇ¾î ´Ù¸¥ ÄÜÆ®·Ñ·¯¸¦ µð½ºÆÌÄ¡ Çϵµ·Ï(µíÀÌ) Áö½Ã¹Þ¾ÒÀ» °æ¿ì´Â, ·çÇÁ°¡ °è¼ÓµÇ¾î ´ÙÀ½ÀÇ ¹è¼Û 󸮸¦ ÇÕ´Ï´Ù. ±× ÀÌ¿ÜÀÇ °æ¿ì´Â, 󸮰¡ °Å±â¼­ Á¾·áÇÕ´Ï´Ù.±× ÀÌ¿ÜÀÇ °æ¿ì´Â, 󸮰¡ Á¾·áÇÕ´Ï´Ù.

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

¸®Äù½ºÆ® ¿ÀºêÁ§Æ®¶õ Zend_Controller_Front (¿Í)°ú ¶ó¿ìÅÍ, µð½ºÆÖÃÄ ±×¸®°í ÄÜÆ®·Ñ·¯ Ŭ·¡½ºÀÇ »çÀÌ¿¡ ±³È¯µÇ´Â ´Ü¼øÇÑ ¹ë·ù ¿ÀºêÁ§Æ®ÀÔ´Ï´Ù. À̰ÍÀº ÄÜÆ®·Ñ·¯, ¾×¼Ç ±×¸®°í ȯ°æ (HTTP ,CLI ,PHP-GTK µî) ¿¡ ÀÀÇÑ ±× ¿ÜÀÇ ÆÄ¶ó¹ÌÅÍÀÇ ³»¿ëÀ» Áý°èÇÑ °ÍÀÔ´Ï´Ù.

  • ÄÜÆ®·Ñ·¯¸í¿¡ÀÇ ¾×¼¼½º´Â getControllerName() ¹× setControllerName() ¿¡ ÀÇÇØ¼­ ½Ç½ÃÇÕ´Ï´Ù.

  • ÄÜÆ®·Ñ·¯³»·ÎºÎÅÍ ÄÝ µÇ´Â ¾×¼ÇÀÇ À̸§¿¡ÀÇ ¾×¼¼½º´Â getActionName() ¹× setActionName() ¿¡ ÀÇÇØ¼­ ½Ç½ÃÇÕ´Ï´Ù.

  • ¾×¼Ç¿¡°Ô °Ç³×Áö´Â ÆÄ¶ó¹ÌÅʹ Ű/ Ä¡ ÀÇ Æí¼ºÀ¸·ÎºÎÅÍ µÇ´Â ¿¬»ó ¹è¿­·Î, getParams() ¹× setParams() ¿¡ ÀÇÇØ¼­ ¾×¼¼½º ÇÕ´Ï´Ù. ȤÀº, ±× °³°³ÀÇ µ¥ÀÌÅÍ¿¡´Â getParam() ¹× setParam() ±×¸®°í ¾×¼¼½º ÇÕ´Ï´Ù.

¸®Äù½ºÆ®ÀÇ Çü½Ä¿¡ µû¶ó¼­´Â, ±× ÀÌ¿ÜÀÇ ¸Þ¼Òµåµµ »ç¿ë °¡´ÉÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, µðÆúÆ®ÀÇ ¸®Äù½ºÆ®·Î »ç¿ëµÈ´Ù Zend_Controller_Request_Http ±×·³, ¸®Äù½ºÆ® URI (ÀÌ)³ª ÆÐ½º Á¤º¸,$_GET (ÀÌ)³ª $_POST ÆÄ¶ó¹ÌÅ͸¦ ÃëµæÇÏ´Â ¸Þ¼ÒµåµîÀÌ ÀÖ½À´Ï´Ù.

¸®Äù½ºÆ® ¿ÀºêÁ§Æ®´Â ÇÁ·±Æ® ÄÜÆ®·Ñ·¯¿¡°Ô °Ç³×Áý´Ï´Ù. ¸¸¾à ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®°¡ ¾ø¾ú´ø °æ¿ì´Â, µð½ºÆÌÄ¡ ó¸®ÀÇ ÃÖÃÊ ( ·çÆÃÀÌ ¹ß»ýÇϱâ Àü) ¿¡ ÀνºÅϽº°¡ ÀÛ¼ºµË´Ï´Ù.À̰ÍÀº, µð½ºÆÌġüÀÎÀÇ ¸ðµç ¿ÀºêÁ§Æ®¿¡°Ô °Ç³×Á®¼­ °©´Ï´Ù.

°Ô´Ù°¡ ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®´Â Å×½ºÆ® ½Ã¿¡µµ À¯¿ëÇÕ´Ï´Ù. °³¹ßÀÚ°¡ ¸®Äù½ºÆ®¸¦ ÀÛ¼ºÇØ, ÄÜÆ®·Ñ·¯³ª ¾×¼Ç, ÆÄ¶ó¹ÌÅͳª URI µîÀ» ÁöÁ¤ÇØ ±×°ÍÀ» ÇÁ·±Æ® ÄÜÆ®·Ñ·¯¿¡ °Ç³×ÁÖ´Â °ÍÀ¸·Î, ¾îÇø®ÄÉÀ̼ÇÀÇ È帧À» Å×½ºÆ®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸®½ºÆù½º ¿ÀºêÁ§Æ®¿Í Á¶ÇÕÇØ »ç¿ëÇϸé, MVC ¾îÇø®ÄÉÀ̼ÇÀÇ Á¤¹ÐÇϰí Á¤È®ÇÑ ´Üü Å×½ºÆ®°¡ °¡´ÉÇØÁý´Ï´Ù.

7.1.3. ·çÆÃ ó¸®

ù ÄÜÆ®·Ñ·¯¸¦ ¸¸µé±â ½ÃÀÛÇϱâ Àü¿¡, ·çÆÃ 󸮰¡ 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 ¿¡°Ô °Ç³×Áý´Ï´Ù.

7.1.4. µð½ºÆÌÄ¡ ó¸®

µð½ºÆÌÄ¡ 󸮴Â, ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®¸¦ ¹Þ¾Æ, °Å±â¿¡ Æ÷ÇԵǴ Á¤º¸ ( ÄÜÆ®·Ñ·¯¸í, ¾×¼Ç¸í ¹× ¿É¼ÇÀÇ ÆÄ¶ó¹ÌÅÍ) (À»)¸¦ Àü°³ÇØ, ÄÜÆ®·Ñ·¯ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇØ ±× ÄÜÆ®·Ñ·¯ÀÇ ¾×¼ÇÀ» ÄÝ ÇÕ´Ï´Ù. ÄÜÆ®·Ñ·¯³ª ¾×¼ÇÀÌ ¹ß°ßµÇÁö ¾Ê´Â °æ¿ì´Â, µðÆúƮġ¸¦ »ç¿ëÇÕ´Ï´Ù.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'));
}

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

¸®½ºÆù½º ¿ÀºêÁ§Æ®´Â, ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®¿Í ´ë°¡ µÇ´Â °ÍÀÔ´Ï´Ù. ±× ¸ñÀûÀº, ÄÁÅÙÃ÷³ª Çì´õ¸¦ ¼öÁýÇØ, ±×°ÍÀ» µ¹·ÁÁÖ´Â °ÍÀÔ´Ï´Ù. °Ô´Ù°¡ ÇÁ·±Æ® ÄÜÆ®·Ñ·¯·Î Æ÷ÂøÇÑ ¿¹¿Ü´Â ¸ðµÎ ¸®½ºÆù½º ¿ÀºêÁ§Æ®¿¡°Ô °Ç³×Áý´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, ¿¹¿ÜÀÇ Ã³¸®°¡ Çϱ⠽¬¿öÁý´Ï´Ù. ÀÌ °Åµ¿À» º¯°æÇÏ·Á¸é 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();