¸®Äù½ºÆ® ¿ÀºêÁ§Æ®¶õ Zend_Controller_Front
(¿Í)°ú ¶ó¿ìÅÍ,
µð½ºÆÖÃÄ ±×¸®°í ÄÜÆ®·Ñ·¯ Ŭ·¡½ºÀÇ »çÀÌ¿¡ ±³È¯µÇ´Â ´Ü¼øÇÑ ¹ë·ù ¿ÀºêÁ§Æ®ÀÔ´Ï´Ù.
À̰ÍÀº ÄÜÆ®·Ñ·¯, ¾×¼Ç ±×¸®°í ȯ°æ (HTTP,CLI,PHP-GTK µî)
¿¡ ÀÀÇÑ ±× ¿ÜÀÇ ÆÄ¶ó¹ÌÅÍÀÇ ³»¿ëÀ» Áý°èÇÑ °ÍÀÔ´Ï´Ù.
¸ðµâ¸í¿¡ ¾×¼¼½º ÇÏ·Á¸é
getModuleName()
¹×
setModuleName()
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
ÄÜÆ®·Ñ·¯¸í¿¡ ¾×¼¼½º ÇÏ·Á¸é
getControllerName()
¹×
setControllerName()
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
ÄÜÆ®·Ñ·¯³»¿¡¼ ÄÝ ÇÏ´Â ¾×¼ÇÀÇ À̸§¿¡ ¾×¼¼½º ÇÏ·Á¸é
getActionName()
¹×
setActionName()
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
¾×¼ÇÀ¸·ÎºÎÅÍ ¾×¼¼½º ÇÒ ¼ö ÀÖ´Â ÆÄ¶ó¹ÌÅÍ´Â
Ű/Ä¡ ÀÇ Æí¼ºÀÇ ¿¬»ó ¹è¿ÀÌ µË´Ï´Ù.À̰͵éÀ» ÃëµæÇÏ·Á¸é
getParams()
(À»)¸¦, ±×¸®°í ¼³Á¤ÇÏ·Á¸é
setParams()
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.°¢ ÆÄ¶ó¹ÌÅ͸¦ °³º°ÀûÀ¸·Î Ãë±ÞÇÏ·Á¸é
getParam()
¹× setParam()
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
¸®Äù½ºÆ®ÀÇ ÇüÅ¿¡ µû¶ó¼´Â, ±× ¿ÜÀÇ ¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¼ö Àֱ⵵ ÇÕ´Ï´Ù.
¿¹¸¦ µé¾î, µðÆúÆ®ÀÇ ¸®Äù½ºÆ®·Î »ç¿ëÇÑ´Ù
Zend_Controller_Request_Http
ÀÇ °æ¿ì´Â,
¸®Äù½ºÆ® µÇ¾ú´Ù URI (ÀÌ)³ª ÆÐ½º Á¤º¸,
$_GET
ÆÄ¶ó¹ÌÅͳª $_POST
ÆÄ¶ó¹ÌÅ͸¦ ÃëµæÇÏ´Â ¸Þ¼Òµå°¡ »ç¿ë °¡´ÉÇØÁý´Ï´Ù.
¸®Äù½ºÆ® ¿ÀºêÁ§Æ®´Â ÇÁ·±Æ® ÄÜÆ®·Ñ·¯¿¡°Ô °Ç³×Áý´Ï´Ù. ¸¸¾à ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®°¡ ¾ø¾ú´ø °æ¿ì´Â, µð½ºÆÌÄ¡ ó¸®ÀÇ ÃÖÃÊ (·çÆÃÀÌ ¹ß»ýÇϱâ Àü) ¿¡ ÀνºÅϽº°¡ ÀÛ¼ºµË´Ï´Ù.À̰ÍÀº, µð½ºÆÌġüÀÎÀÇ ¸ðµç ¿ÀºêÁ§Æ®¿¡°Ô °Ç³×Á®¼ °©´Ï´Ù.
°Ô´Ù°¡ ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®´Â Å×½ºÆ® ½Ã¿¡µµ À¯¿ëÇÕ´Ï´Ù. °³¹ßÀÚ°¡ ¸®Äù½ºÆ®¸¦ ÀÛ¼ºÇØ, ÄÜÆ®·Ñ·¯³ª ¾×¼Ç, ÆÄ¶ó¹ÌÅͳª URI µîÀ» ÁöÁ¤ÇØ ±×°ÍÀ» ÇÁ·±Æ® ÄÜÆ®·Ñ·¯¿¡ °Ç³×ÁÖ´Â °ÍÀ¸·Î, ¾îÇø®ÄÉÀ̼ÇÀÇ È帧À» Å×½ºÆ®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸®½ºÆù½º ¿ÀºêÁ§Æ® (¿Í)°ú Á¶ÇÕÇØ »ç¿ëÇϸé, MVC ¾îÇø®ÄÉÀ̼ÇÀÇ Á¤¹ÐÇϰí Á¤È®ÇÑ ´Üü Å×½ºÆ®°¡ °¡´ÉÇØÁý´Ï´Ù.
Zend_Controller_Request_Http
(Àº)´Â, °ü·ÃÇÏ´Â °ª¿¡ÀÇ ¾×¼¼½º¸¦ ĸ½¶ÈÇÕ´Ï´Ù.
¿¹¸¦ µé¾î ÄÜÆ®·Ñ·¯³ª ¾×¼Ç ¶ó¿ìÅÍÀÇ º¯¼öÀÇ Å°¸íÀ̳ª °ª,
URI (À¸)·ÎºÎÅÍ ÆÛ½º ÇÑ Ãß°¡ÀÇ ÆÄ¶ó¹ÌÅÍÀÇ °ª µî¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Zend_Controller_Request_Http
ÀÇ ÇÁ·Ï½Ã·Î¼ µ¿ÀÛÇÏ´Â °ÍÀ¸·Î,
½´ÆÛ ±Û·Î¹úÀÇ °ª¿¡ ÆÛºí¸¯ ¸â¹ö·Î¼ ¾×¼¼½º Çϰųª
ÇöÀçÀÇ º£À̽º URL (ÀÌ)³ª ¸®Äù½ºÆ® URI (À»)¸¦ °ü¸®ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
½´ÆÛ ±Û·Î¹úÀÇ °ªÀº ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®·Î ¼³Á¤ÇÒ ¼ö ¾ø½À´Ï´Ù.
±× ´ë½Å¿¡ setParam/getParam ¸Þ¼Òµå¸¦ »ç¿ëÇϰí,
ÆÄ¶ó¹ÌÅ͸¦ ¼³Á¤ ȤÀº ÃëµæÇÕ´Ï´Ù.
![]() |
½º¹Ù±×·Î¹Ù¸£µ¥ÀÌŸ |
---|---|
|
ƯÁ¤ÀÇ ½´ÆÛ ±Û·Î¹úÇÏ°Ô ¾×¼¼½º ÇÏ·Á¸é ,
ÆÛºí¸¯ ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´Â ¹æ¹ýµµ ÀÖ½À´Ï´Ù.¿¹¸¦ µé¾î,
$_POST['user']
ÀÇ °ªÀ» ÃëµæÇÏ·Á¸é , ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®»ó¿¡¼
getPost('user')
(À»)¸¦ ÄÝ ÇÕ´Ï´Ù.°°ÀÌ
$_GET
¿ä¼ÒÀÇ °æ¿ì´Â getQuery()
,
¸®Äù½ºÆ® Çì´õÀÇ °æ¿ì´Â getHeader()
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
![]() |
GET ¹× POST µ¥ÀÌÅÍ |
---|---|
¸®Äù½ºÆ® ¿ÀºêÁ§Æ®ÀÇ µ¥ÀÌÅ͸¦ Ãë±ÞÇÒ ¶§ ÁÖÀÇÇսôÙ. ÀÌ·¯ÇÑ µ¥ÀÌÅÍ´Â, ÀÏÀý ÇÊÅ͸µÀ» ½Ç½ÃÇϰí ÀÖÁö ¾Ê½À´Ï´Ù. ¶ó¿ìÅͳª µð½ºÆÖÃÄ ÂÊÀ¸·Î ÀûÀýÇÑ °ËÁõ°ú ÇÊÅ͸µÀ» ½Ç½ÃÇϹǷÎ, ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®³»ÀÇ µ¥ÀÌÅÍ´Â ±×´ë·Î ÇØ µÓ½Ã´Ù. |
À¯Àú ÆÄ¶ó¹ÌÅ͸¦ ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®·Î ¼³Á¤ÇÏ·Á¸é
setParam()
(À»)¸¦, ´ÙÀ½¿¡ ±×°ÍÀ» ÃëµæÇÏ·Á¸é
getParam()
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
¶ó¿ìÅÍ´Â, ¸®Äù½ºÆ® URI ¿¡ ¸ÅÄ¡ÇÑ ÆÄ¶ó¹ÌÅ͸¦
¸®Äù½ºÆ® ¿ÀºêÁ§Æ®·Î ¼³Á¤ÇÒ ¶§¿¡ ÀÌ ±â´ÉÀ» »ç¿ëÇÕ´Ï´Ù.
![]() |
getParam() (À¸)·ÎÀÇ À¯Àú ÆÄ¶ó¹ÌÅÍ ÀÌ¿ÜÀÇ Ãëµæ |
---|---|
|
![]() |
Apache ÀÇ ÀÌ»óÇÑ °Åµ¿ |
---|---|
Apache ÀÇ 404 Çڵ鷯¸¦ »ç¿ëÇØ
¸®Äù½ºÆ®¸¦ ÇÁ·±Æ® ÄÜÆ®·Ñ·¯¿¡ °Ç³×Áְųª
PT Ç÷¡±×¸¦ rewrite ·ê·Î »ç¿ëÇϰųª ÇÏ´Â °æ¿ì´Â,
ÇÊ¿äÇÑ URI Á¤º¸°¡ Æ÷ÇԵǴ °ÍÀÌ
ÀÌ Å¬·¡½º´Â
|
Zend_Controller_Request_Http
(Àº)´Â,
¼ºê µð·ºÅ丮·Î Zend_Controller_Router_Rewrite (À»)¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
Zend_Controller_Request_Http (Àº)´Â ÀÚµ¿ÀûÀ¸·Î º£À̽º URL (À»)¸¦ °ËÃâÇØ,
±×°ÍÀ» ÀûÀýÈ÷ ¼³Á¤ÇÕ´Ï´Ù.
¿¹¸¦ µé¾î,index.php
(À»)¸¦ À¥ ¼¹öÀÇ ¼ºê µð·ºÅ丮
/projects/myapp/index.php
¿¡ µÎ¾úÀ» °æ¿ì´Â, º£À̽º URL
(rewrite base) ÇÏ /projects/myapp
(À¸)·Î ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
¸ÅÄ¡ÇÏ´Â ·çÆ®¸¦ ã¾Æ³»±â Àü¿¡, ÀÌ ¹®ÀÚ¿ÀÌ ÆÐ½ºÀÇ ¼±µÎ·ÎºÎÅÍ Á¦°ÅµË´Ï´Ù.
À̰Ϳ¡ ÀÇÇØ, ¸ðµç ·çÆ®¿¡ ºÒÇÊ¿äÇÑ ¹®ÀÚ¸¦ Ãß°¡ÇÒ Çʿ䰡 ¾ø¾îÁý´Ï´Ù.
·çÆ® 'user/:username'
(Àº)´Â,
http://localhost/projects/myapp/user/martel
¹×
http://example.com/user/martel
ÀÇ ¾çÂÊ ¸ðµÎ¿¡ ¼º³É ÇÏ°Ô µË´Ï´Ù.
![]() |
URL ÀÇ °ËÃâÀº ´ë¹®ÀÚ ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÕ´Ï´Ù |
---|---|
ÀÚµ¿ÀûÀÎ º£À̽º URL ÀÇ °ËÃâ 󸮴 ´ë¹®ÀÚ ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÕ´Ï´Ù.±× ¶§¹®¿¡, URL (¿Í)°ú ÆÄÀÏ ½Ã½ºÅÛÀÇ ¼ºê µð·ºÅ丮¸íÀÌ È®½ÇÈ÷ ÀÏÄ¡ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù (ºñ·Ï Windows ¸Ó½ÅÀ̾ °°½À´Ï´Ù).´ë¹®ÀÚ ¼Ò¹®ÀÚ°¡ ÀÏÄ¡ÇÏÁö ¾Ê¾Ò´ø °æ¿ì´Â, ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù. |
º£À̽º URL ÀÇ °ËÃâ¿¡ ½ÇÆÐÇÏ´Â °æ¿ì´Â,
Zend_Controller_Request_Http
Ŭ·¡½º, ȤÀº
Zend_Controller_Front
Ŭ·¡½ºÀÇ
setBaseUrl()
¸Þ¼Òµå¸¦ »ç¿ëÇØ
º£À̽º ÆÐ½º¸¦ µ¡¾²±â ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Á¦ÀÏ °£´ÜÇÑ ¹æ¹ýÀº Zend_Controller_Front
±×¸®°í ¼³Á¤ÇÏ´Â °ÍÀÔ´Ï´Ù.
ÀÌ ¼³Á¤Àº ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®¿¡ ÀΰèµË´Ï´Ù.
µ¶ÀÚÀûÀÎ º£À̽º URL (À»)¸¦ ¼³Á¤ÇÏ´Â ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
<?php
/**
* Zend_Controller_Front ±×¸®°í µ¶ÀÚÀûÀÎ º£À̽º URL (À»)¸¦ ÁöÁ¤ÇÏ´Â °Í¿¡ ÀÇÇÑ ¸®Äù½ºÆ®ÀÇ µð½ºÆÌÄ¡
*/
$router = new Zend_Controller_Router_Rewrite();
$controller = Zend_Controller_Front::getInstance();
$controller->setControllerDirectory('./application/controllers')
->setRouter($router)
->setBaseUrl('/projects/myapp'); // º£À̽º URL (À»)¸¦ ÁöÁ¤ÇÕ´Ï´Ù!
$response = $controller->dispatch();
Zend_Controller_Request_Http
¿¡´Â,
AJAX ¸®Äù½ºÆ®¸¦ °ËÃâÇϱâ À§ÇÑ ±âº»ÀûÀÎ ¸Þ¼Òµå
isXmlHttpRequest()
ÇÏÁö¸¸ ÁغñµÇ¾î ÀÖ½À´Ï´Ù.
ÀÌ ¸Þ¼Òµå´Â,HTTP ¸®Äù½ºÆ® Çì´õ
X-Requested-With
¿¡
'XMLHttpRequest' ±×·¸´Ù°í ÇÏ´Â °ªÀÌ ¼³Á¤µÇ¾î ÀÖ´ÂÁö ¾î¶²Áö¸¦ Á¶»çÇØ
¼³Á¤µÇ¾î ÀÖ´Â °æ¿ì¿¡ true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.
Çö½ÃÁ¡¿¡¼´Â, ´ÙÀ½ÀÇ JS ¶óÀ̺귯¸®°¡ µðÆúÆ®·Î ÀÌ Çì´õ¸¦ °Ç³×ÁÖ´Â °Í °°½À´Ï´Ù.
Prototype/Scriptaculous (±× ¿Ü Prototype °èÀÇ ¶óÀ̺귯¸®)
Yahoo! UI Library
jQuery
MochiKit
´ëºÎºÐÀÇ AJAX ¶óÀ̺귯¸®´Â, µ¶ÀÚÀûÀÎ HTTP ¸®Äù½ºÆ® Çì´õ¸¦ ¼Û½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ¿ëÀÇ ¶óÀ̺귯¸®°¡ ÀÌ Çì´õ¸¦ ¼Û½ÅÇϰí ÀÖÁö ¾Ê´Â °æ¿ì´Â,
½º½º·Î ÀÌ Çì´õ¸¦ Ãß°¡ÇÏ´Â °ÍÀ¸·Î
isXmlHttpRequest()
¸Þ¼ÒµåÀÇ µ¿ÀÛÀ» ±â´ë ´ë·Î·Î ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¸ðµç ¸®Äù½ºÆ® ¿ÀºêÁ§Æ® Ŭ·¡½º´Â, Ãß»ó Ŭ·¡½º
Zend_Controller_Request_Abstract
(À»)¸¦ °è½ÂÇϰí ÀÖ½À´Ï´Ù.
ÀÌ Å¬·¡½º¿¡¼´Â, ´ÙÀ½°ú °°Àº ¸Þ¼Òµå¸¦ Á¤ÀÇÇϰí ÀÖ½À´Ï´Ù.
abstract class Zend_Controller_Request_Abstract
{
/**
* @return string
*/
public function getControllerName();
/**
* @param string $value
* @return self
*/
public function setControllerName($value);
/**
* @return string
*/
public function getActionName();
/**
* @param string $value
* @return self
*/
public function setActionName($value);
/**
* @return string
*/
public function getControllerKey();
/**
* @param string $key
* @return self
*/
public function setControllerKey($key);
/**
* @return string
*/
public function getActionKey();
/**
* @param string $key
* @return self
*/
public function setActionKey($key);
/**
* @param string $key
* @return mixed
*/
public function getParam($key);
/**
* @param string $key
* @param mixed $value
* @return self
*/
public function setParam($key, $value);
/**
* @return array
*/
public function getParams();
/**
* @param array $array
* @return self
*/
public function setParams(array $array);
/**
* @param boolean $flag
* @return self
*/
public function setDispatched($flag = true);
/**
* @return boolean
*/
public function isDispatched();
}
¸®Äù½ºÆ® ¿ÀºêÁ§Æ®´Â, ¸®Äù½ºÆ® ȯ°æÀÇ ÄÁÅ×À̳ʰ¡ µË´Ï´Ù. ÄÜÆ®·Ñ·¯ ÃÖÀÎÀÌ ¾Ë¾Æ µÎ¾î¾ß ÇÒ (ÀÏ)°ÍÀº, ÄÜÆ®·Ñ·¯³ª ¾×¼Ç, ¿É¼Ç ÆÄ¶ó¹ÌÅÍ, µð½ºÆÌÄ¡ »óȲ (À»)¸¦ ÃëµæÇϰųª ¼³Á¤Çϰųª ÇÏ´Â ¹æ¹ý¸¸ÀÔ´Ï´Ù. µðÆúÆ®¿¡¼´Â, ¸®Äù½ºÆ® ¿ÀºêÁ§Æ®°¡ ÄÜÆ®·Ñ·¯ ¹× ¾×¼ÇÀ» °áÁ¤ÇÒ ¶§ Ű controller ȤÀº action (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
ÀÌ Å¬·¡½ºÀΰ¡ ±× »ó¼Ó Ŭ·¡½ºÀÇ ¾î´ÀÂÊÀ̵çÀ» °è½ÂÇÑ Å¬·¡½º¸¦ ÀÛ¼ºÇÏ´Â °ÍÀ¸·Î, À§¿¡¼ ¼³¸íÇÑ ÀÛ¾÷À» µ¶ÀÚÀûÀÎ °ÍÀ¸·Î º¯°æÇÑ Å¬·¡½º¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹·Î¼´Â, ¿¹¸¦ µé¾î HTTP ȯ°æ¿ë ÀÇ Å¬·¡½º³ª CLI ȯ°æ¿ë,PHP-GTK ȯ°æ¿ëÀÇ Å¬·¡½º°¡ ÀÖ½À´Ï´Ù.