Zend_Controller
½Ã½ºÅÛÀº, È®À强À» °í·ÁÇØ ÀÛ¼ºµÇ°í ÀÖ½À´Ï´Ù. È®Àå
¹æ¹ýÀ¸·Î¼´Â, ±âÁ¸ÀÇ Å¬·¡½º¸¦ °è½ÂÇÏ´Â °Í ¿Ü¿¡µµ, ÄÜÆ®·Ñ·¯ ÆÐ¹Ð¸®¸¦ ±¸¼ºÇÏ´Â ´Ù¾çÇÑ ÀÎÅÍÆäÀ̽º³ª Ãß»ó Ŭ·¡½º¸¦ ½ÇÀåÇß´Ù »õ·Î¿î Ŭ·¡½º¸¦
ÀÛ¼ºÇÏ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
Zend_Controller (Àº)´Â, ±ú²ýÇÑ ( Äí¿¡¸® ¹®ÀÚ¿À» °ÅÀÇ »ç¿ëÇÏÁö ¾Ê´Â´Ù) URI (À»)¸¦ ¼Æ÷Æ®Çϵµ·Ï(µíÀÌ) ÀÛ¼ºµÇ°í
ÀÖ½À´Ï´Ù.ÀÌ Ãßõ ¼³Á¤À» »ç¿ëÇϱâ À§Çؼ´Â, À¥ ¼¹ö°¡ URI ÀÇ °³¼¸¦ ¼Æ÷Æ®Çϰí ÀÖ¾î, ¸ðµç ¸®Äù½ºÆ®¸¦ ´ÜÀÏÀÇ ÆÄÀÏ ( ¿©±â¿¡¼´Â "index.php"
(À¸)·Î ÇÕ´Ï´Ù.À̰ÍÀº ´ÜÁö Zend_Controller_Front
(À»)¸¦ È£ÃâÇÒ »ÓÀÔ´Ï´Ù)
¿¡ ¸®µð·ºÆ® ÇÒ ¼ö ¾øÀ¸¸é ¾ÈµË´Ï´Ù. Apache ±×·³, ÀÌ ±â´ÉÀº ¿É¼ÇÀÇ ¸ðµâ mod_rewrite ±×¸®°í ¼Æ÷Æ®µÇ°í ÀÖ½À´Ï´Ù.
¼¹ö¸¦ ¼³Á¤Çϱâ À§ÇÑ Á¦ÀϺ¸´Â, ¿ì¼± Á¦´ë·Î ÀνºÅç ÇØ mod_rewrite (À»)¸¦ À¯È¿ÇÏ°Ô ÇÏ´Â °ÍÀÔ´Ï´Ù.´ÙÀ½¿¡,.htaccess (¿Í)°ú index.php ÀÇ 2 °³ÀÇ ÆÄÀÏÀ» ¹®¼ ·çÆ®¿¡ ¹èÄ¡ÇÕ´Ï´Ù. .htaccess ÇÏ Apache ÇÏÁö¸¸ »ç¿ëÇÏ´Â ÆÄÀÏ·Î, ¸ðµç ¸®Äù½ºÆ®¸¦ index.php ¿¡ ¸®µð·ºÆ® ½Ã۱â À§ÇÑ mod_rewrite ÀÇ ·êÀ» ¿©±â¿¡ ±â¼úÇÕ´Ï´Ù.°³¹ßÁßÀ̶ó¸é, ƯÁ¤ÀÇ È®ÀåÀÚ(extension)ÀÇ ÆÄÀÏ Àܸ̿¦ ¸ðµÎ index.php ¿¡ ¸®µð·ºÆ® ½ÃŰ´Â ´Ü¼øÇÑ ·êÀ» ¼³Á¤ÇØ µÎ¸é ÁÁÀ» °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¸é ÀÌ¿Í °°ÀÌ µË´Ï´Ù.
RewriteEngine on
RewriteRule !.(js|ico|gif|jpg|png|css)$ index.php
À§ÀÇ ¿¹¿¡¼´Â, ÁöÁ¤ÇÑ È®ÀåÀÚ(extension) ÀÌ¿ÜÀÇ ¸ðµç ÆÄÀÏ¿¡ ´ëÇÑ ¸®Äù½ºÆ®°¡ index.php ¿¡°Ô °Ç³×Áý´Ï´Ù.°³¹ßÁß¿¡´Â À̰ÍÀ¸·Î ÃæºÐÇÕ´Ï´Ù¸¸, ½Ç¿î¿ë ȯ°æ¿¡¼´Â, ¸®µð·ºÆ® ÇÏÁö ¾Ê´Â µð·ºÅ丮¸¦ ÁöÁ¤ÇÏ´Â µîÀÇ ±â¼úÀÌ ÇÊ¿äÇϰÚÁö¿ä.
![]() |
±âµ¿¿ë ÆÄÀÏÀÇ Àå¼Ò |
---|---|
¹®¼ ·çÆ®¿¡ ¹èÄ¡ÇÑ´Ù PHP ÆÄÀÏÀº, ÀÌ ±âµ¿¿ë ÆÄÀϸ¸ ÇØ µÎ¾î¾ß ÇÕ´Ï´Ù. |
Zend_Controller ÀÇ ±âº» ±â´ÉÀ¸·Î¼ Äí¿¡¸® ÆÄ¶ó¹ÌÅ͸¦ Æ÷ÇÔÇÑ´Ù URL µµ ¼Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù.¿¹¸¦ µé¾î index.php?controller=foo&action=bar
(¿Í)°ú
°°Àº Çü½ÄÀÔ´Ï´Ù. °Ô´Ù°¡ µ¿°í µÇ°í ÀÖ´Â ¶Ç ÇϳªÀÇ ¶ó¿ìÅÍÀÌ´Ù Zend_Controller_RewriteRouter
(Àº)´Â,
¸¹Àº ȯ°æ¿¡¼ (mod_rewrite ÀûÀÎ ±â´ÉÀ» °¡ÁöÁö ¾Ê´Â ȯ°æ¿¡¼µµ) µ¿ÀÛÇÕ´Ï´Ù. mod_rewrite (À»)¸¦ »ç¿ëÇÒ ¼ö ¾ø´Â
°æ¿ì¿¡¼µµ, ´ç½ÅÀÇ »çÀÌÆ®¿¡¼ Zend_Controller (À»)¸¦ »ç¿ëÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù.
.htaccess ÆÄÀÏÀÇ ¼³Á¤ÀÌ ³¡³ª¸é, ´ÙÀ½¿¡ index.php
±×·¸´Ù°í ÇÏ´Â
»õ·Î¿î ÆÄÀÏÀ» ÀÛ¼ºÇÕ´Ï´Ù.À̰ÍÀÌ ±âµ¿¿ë ÆÄÀÏÀÌ µË´Ï´Ù. index.php (Àº)´Â, ´ÜÁö Zend_Controller_Front (À»)¸¦
±âµ¿Çϱâ À§ÇØ(¶§¹®¿¡)ÀÎ ¸¸Å »ç¿ëÇÕ´Ï´Ù. Zend_Controller_Front (Àº)´Â ¹®¼ ·çÆ®ÀÇ ¹Û¿¡ ¹èÄ¡ÇÕ´Ï´Ù.
![]() |
ÁÖÀÇ |
---|---|
¹®¼ ·çÆ®¿¡ ¹èÄ¡ÇÑ´Ù PHP ÆÄÀÏÀº, ÀÌ ±âµ¿¿ë ÆÄÀϸ¸ ÇØ µÎ¾î¾ß ÇÕ´Ï´Ù. |
½ÃÅ¥·¯Æ¼»ó, ´Ù¸¥ PHP ÆÄÀÏÀº À¥ ¼¹ö·ÎºÎÅÍ ¾×¼¼½º ÇÒ ¼ö ¾ø´Â Àå¼Ò ( ¹®¼ ·çÆ®ÀÇ ºÎÇϰ¡ ¾Æ´Ñ Àå¼Ò) ¿¡ µÎ´Â °ÍÀ» Zend (À¸)·Î¼ °ÇÏ°Ô Ãßõ ÇÕ´Ï´Ù. °øÀ¯ È£½ºÆÃ ȯ°æµî »ý°¢ Çß´ø ´ë·Î¿¡ °¡Áö ¾ÊÀº ȯ°æµµ ÀÖ´Â °ÍÀº ÀÌÇØÇÕ´Ï´Ù¸¸, °¡´ÉÇÑ ÇÑ Ãßõ ¼³Á¤¿¡ µû¸£µµ·Ï ÇØ ÁÖ¼¼¿ä.
Zend_Controller_Front (À»)¸¦ ±âµ¿Çϱâ À§ÇÑ ±âµ¿¿ë ÆÄÀÏ index.php
(À»)¸¦
¹®¼ ·çÆ®¿¡ ÀÛ¼ºÇÕ´Ï´Ù.
<?php
require_once 'Zend/Controller/Front.php';
Zend_Controller_Front::run('/path/to/your/controllers');
?>
/path/to/your/controllers
ÀÇ ºÎºÐ¿¡ °üÇØ¼´Â, ´ÙÀ½ÀÇ ¸¶µð¸¦
ÂüÁ¶ÇØ ÁֽʽÿÀ. README.txt
¿¡ ±â¼úµÇ°í ÀÖµµ·Ï(µíÀÌ), Zend Framework
¶óÀ̺귯¸®ÀÇ µð·ºÅ丮´Â include_path
¿¡ µÎÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.include_path
ÇÏÁö¸¸ php.ini
±×¸®°í
¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â, ÀÌ ÆÄÀÏ·Î require_once()
Çϱâ Àü¿¡ set_include_path()
(À»)¸¦
ÄÝ ÇØ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Zend Framework ±×¸®°í ±¸ÃàÇÑ À¥ »çÀÌÆ®´Â, °øÅëÀÇ µð·ºÅ丮 ±¸Á¶¸¦ °øÀ¯ÇÏ´Â °ÍÀ» Ãßõ ÇÕ´Ï´Ù. ¸ðµÎ¶ó°í´Â ¸»ÇÏÁö ¾Ê½À´Ï´Ù¸¸, °¡´ÉÇÑ ÇÑ ÀÌ ±¸Á¶¿¡ ¸ÂÃßµµ·Ï ÇսôÙ. ±×·¸°Ô ÇÏ´Â °ÍÀ¸·Î,Zend Framework ÀÇ ±Ô¾à¿¡ Àͼ÷ÇØ ÀÖ´Â »ç¶÷µé¿¡°Ô ÀÖ¾î¼, ´ç½ÅÀÇ Äڵ尡 º¸´Ù ÀÌÇØÇϱ⠽¬¿î °ÍÀÌ µË´Ï´Ù.
Ãßõ ÇÏ´Â ±¸Á¶´Â,(Zend ¹× ±× ¿ÜÀÇ) ¶óÀ̺귯¸®¿ëÀÇ µð·ºÅ丮¿Í ¾îÇø®ÄÉÀ̼ÇÀÇ µð·ºÅ丮¸¦ µû·Î ³ª´©´Â °ÍÀÔ´Ï´Ù.
/application
/models
/views
/controllers
/document_root
/images
/styles
.htaccess
index.php
/library
/Zend
![]() |
ÁÖÀÇ |
---|---|
ÀÌ ¸¶µð´Â ¹Ì¿Ï¼ºÀÔ´Ï´Ù.ÇöÀç ÀÛ¼ºÁßÀ̸ç, ÇâÈÄ ¹Ù²ð °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. |
µðÆúÆ®ÀÇ ÄÜÆ®·Ñ·¯´Â, ¹Ýµå½Ã ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. URI ¿¡ ÄÜÆ®·Ñ·¯°¡ ÁöÁ¤µÇÁö ¾Ê¾Ò´ø °æ¿ì, ¿¹¸¦ µé¸é ´ÙÀ½°ú °°Àº URI ÇÏÁö¸¸ ÁöÁ¤µÇ¾úÀ» °æ¿ì¿¡, ÀÌ ÄÜÆ®·Ñ·¯°¡ »ç¿ëµË´Ï´Ù.
http://framework.zend.com/
Ãʱ⼳Á¤¿¡¼´Â, µðÆúÆ®ÀÇ ÄÜÆ®·Ñ·¯´Â IndexController
(ÀÌ)¶ó´Â À̸§ÀÇ
Ŭ·¡½º¿¡¼, IndexController.php
±×·¸´Ù°í ÇÏ´Â ÆÄÀÏ·Î Á¤ÀǵÇÁö ¾ÊÀ¸¸é
¾ÈµË´Ï´Ù. ³»ºÎÀûÀ¸·Î´Â, À̰ÍÀº 'index' ÄÜÆ®·Ñ·¯·Î¼ ÂüÁ¶µË´Ï´Ù.
ÇÁ·±Æ® ÄÜÆ®·Ñ·¯·ÎÀÇ µð½ºÆÌÄ¡¿¡ ¾Õ¼ µðÆúÆ®ÀÇ ÄÜÆ®·Ñ·¯¸¦ º¯°æÇÏ·Á¸é , ÇÁ·±Æ® ÄÜÆ®·Ñ·¯ ȤÀº µð½ºÆÖÃÄ ¿ÀºêÁ§Æ®·Î setDefaultController()
¸Þ¼Òµå¸¦
ÄÝ ÇÕ´Ï´Ù. ±× ¶§¿¡´Â, ³»ºÎÀÇ ¸í¸í ±Ô¾àÀ» »ç¿ëÇÕ´Ï´Ù.Áï, Ŭ·¡½º HomeController
(
ÆÄÀÏ HomeController.php
¿¡ ±â¼úµÈ °Í) (À»)¸¦ ÂüÁ¶ÇÏ·Á¸é home
(¿Í)°ú
ÁöÁ¤ÇÕ´Ï´Ù.
ÄÜÆ®·Ñ·¯´Â Zend_Controller_Action
Ŭ·¡½º¸¦À» °è½ÂÇØ, ÄÜÆ®·Ñ·¯ÀÇ
µð·ºÅ丮¿¡ ¾øÀ¸¸é ¾ÈµË´Ï´Ù.
<?php
require_once 'Zend/Controller/Action.php';
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
echo 'IndexController
(À¸)·ÎºÎÅÍ ¾È³çÇϼ¼¿ä';
}
public function noRouteAction()
{
$this->_redirect('/');
}
}
?>
µðÆúÆ®ÀÇ ÄÜÆ®·Ñ·¯ ¹× ¾×¼Ç¿¡ ´ëÇÑ »ó¼¼, ±×¸®°í ¾×¼Ç ÄÜÆ®·Ñ·¯ Ŭ·¡½ºÀÇ ÀÛ¼º ¹æ¹ý¿¡ ´ëÇØ¼´Â ÈÄÀÇ ÀåÀ¸·Î ¼³¸íÇÕ´Ï´Ù.
![]() |
ÁÖÀÇ |
---|---|
ÀÌ ¸¶µð´Â ¹Ì¿Ï¼ºÀÔ´Ï´Ù.ÇöÀç ÀÛ¼ºÁßÀ̸ç, ÇâÈÄ ¹Ù²ð °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. |