¸ðµâ·¯ µð·ºÅ丮 ±¸Á¶ÀÇ ±Ô¾à (The Conventional Modular directory structure) ¿¡ ÀÇÇØ, ´Ù¾çÇÑ MVC ¾îÇø®ÄÉÀ̼ÇÀ» Àڱ⠿ϰáÇÑ ´ÜÀ§·Î Á¤¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç, ±×°ÍÀ» ´Ù¾çÇÑ ÇÁ·±Æ® ÄÜÆ®·Ñ·¯·Î ÀçÀÌ¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ÀÌ µð·ºÅ丮 ±¸Á¶´Â, ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù.
docroot/
index.php
application/
controllers/
IndexController.php
FooController.php
blog/
controllers/
IndexController.php
models/
views/
news/
controllers/
IndexController.php
ListController.php
models/
views/
ÀÌ »ý°¢¿¡¼´Â, ¸ðµâ¸íÀÌ, ±× Áß¿¡ Æ÷ÇԵǴ ÄÜÆ®·Ñ·¯ÀÇ ÇÁ·¹ÇȽº°¡ µË´Ï´Ù. À§ÀÇ ¿¹¿¡´Â, ¼¼ °³ÀÇ ¸ðµâ ÄÜÆ®·Ñ·¯ 'Blog_IndexController' ,'News_IndexController' ¹× 'News_ListController' ÇÏÁö¸¸ Æ÷ÇԵ˴ϴÙ.¶Ç, ±Û·Î¹ú ÄÜÆ®·Ñ·¯µµ 'IndexController' (¿Í)°ú 'FooController' ÀÇ µÎ °³°¡ Á¤Àǵǰí ÀÖ½À´Ï´Ù. À̰͵éÀº À̸§ °ø°£¿¡ ¼ÓÇÏÁö ¾Ê½À´Ï´Ù.ÀÌ ÀåÀÇ »ùÇÿ¡¼´Â, ¿©±â¼ ³ªÅ¸³» º¸ÀÎ µð·ºÅ丮 ±¸Á¶¸¦ »ç¿ëÇÕ´Ï´Ù.
±×·¯¸é,Zend Framework ÀÇ MVC ÄÄÆÛ³ÍÆ®¸¦ »ç¿ëÇØ ÀÌ·¯ÇÑ µð·ºÅ丮 ¹èÄ¡¸¦ ½ÇÀåÇÏ·Á¸é ¾î¶»°Ô Çϸé ÁÁÀº °ÍÀϱî¿ä?
¸ðµâÀ» »ç¿ëÇϱâ À§ÇÑ Á¦ÀϺ¸°¡ µÇ´Â °ÍÀÌ, ÇÁ·±Æ® ÄÜÆ®·Ñ·¯·ÎÀÇ ÄÜÆ®·Ñ·¯ µð·ºÅ丮ÀÇ ¼³Á¤ ¹æ¹ý¹ýÀ» º¯°æÇÏ´Â °ÍÀÔ´Ï´Ù. ±âº»ÀûÀÎ MVC ÆÇ¿¡¼´Â, ¹è¿ ȤÀº ¹®ÀÚ¿À» setControllerDirectory() ¿¡ °Ç³×Áֵ簡, ȤÀº ÆÐ½º¸¦ addControllerDirectory() ¿¡ °Ç³×ÁÖ°í ÀÖ¾ú½À´Ï´Ù.¸ðµâÀ» »ç¿ëÇÏ´Â °æ¿ì´Â, ÀÌ·¯ÇÑ ¸Þ¼Òµå ÄÝÀ» Á¶±Ý º¯°æÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
setControllerDirectory() ±×·³, ¿¬»ó ¹è¿À» °Ç³×ÁÙ Çʿ䰡 ÀÖ½À´Ï´Ù. ¿¬»ó ¹è¿ÀÇ Å°¿¡´Â ¸ðµâ¸í, ±×¸®°í ±× °ªÀ¸·Î ÇØ¼ µð·ºÅ丮ÀÇ ÆÐ½º¸¦ ÁöÁ¤ÇÕ´Ï´Ù. Ưº°ÇÑ À̸§ 'default' (À»)¸¦ Ű·Î Çϸé, ±Û·Î¹ú ÄÜÆ®·Ñ·¯ ( ¸ðµâ À̸§ °ø°£À» ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â °Í) (À»)¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸ðµç ¿£Æ®¸®´Â, ÇϳªÀÇ ÆÄ½º¸¦ °¡¸®Å°´Â ¹®ÀÚ¿ÀÇ Å°¸¦ Æ÷ÇÔÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ´ÙÀ½ÀÇ ¿¹ÀÇ °°°Ô µË´Ï´Ù.
$front->setControllerDirectory(array(
'default' => '/path/to/application/controllers',
'blog' => '/path/to/application/blog/controllers'
));
addControllerDirectory() ±×·³, ¿É¼ÇÀÇ µÎ¹øÂ°ÀÇ Àμö¸¦ ¹Þ¾ÆµéÀÔ´Ï´Ù. ¸ðµâÀ» »ç¿ëÇÒ ¶§ , ¸ðµâ¸íÀ» µÎ¹øÂ°ÀÇ Àμö·Î °Ç³×ÁÝ´Ï´Ù. ÁöÁ¤ÇÏÁö ¾Ê´Â °æ¿ì´Â, ±× ÆÐ½º´Â µðÆúÆ®ÀÇ À̸§ °ø°£¿¡ Ãß°¡µË´Ï´Ù. ´ÙÀ½ÀÇ ¿¹ÀÇ °°°Ô µË´Ï´Ù.
$front->addControllerDirectory('/path/to/application/news/controllers', 'news');
Zend_Controller_Router_Rewrite
ÀÇ µðÆúÆ®ÀÇ ·çÆ®´Â Zend_Controller_Router_Route_Module
ÇüÅÂÀÇ
¿ÀºêÁ§Æ®ÀÔ´Ï´Ù. ÀÌ ·çÆ®´Â, ÀÌÇÏÀÇ ¸î°³ÀÇ Çü½ÄÀÇ ·çÆÃÀ» ½Ç½ÃÇÕ´Ï´Ù.
:module/:controller/:action/*
:controller/:action/*
¹Ù²Ù¾î ¸»Çϸé, À̰ÍÀº, ÁöÁ¤ÇÑ ÄÜÆ®·Ñ·¯¿Í ¾×¼Ç ȤÀº ±× ¼±µÎ¿¡ ¸ðµâÀ» ºÙÀÎ °Í¿¡ ¸ÅÄ¡ÇÕ´Ï´Ù. ÀÌ ¸ÅĪ ±ÔÄ¢À¸·ÎºÎÅÍ ¾Æ´Â °ÍÀº, ÇÁ·±Æ® ÄÜÆ®·Ñ·¯¿Í µð½ºÆÖÃÄ¿¡°Ô °Ç³×Áø ¹è¿·Î ÁöÁ¤Çß´Ù ÄÜÆ®·Ñ·¯ µð·ºÅ丮ÀÇ ¹è¿¿¡ µ¿¸íÀÇ Å°°¡ ÀÖ´Â °æ¿ì¿¡°Ô¸¸ ¸ðµâ¿¡ ¸ÅÄ¡ÇÏ´Â °ÍÀÔ´Ï´Ù.
µðÆúÆ®ÀÇ ¶ó¿ìÅÍ¿¡¼´Â, ÄÜÆ®·Ñ·¯°¡ URL ±×¸®°í ÁöÁ¤µÇÁö ¾Ê¾Ò´ø °æ¿ì¿¡´Â µðÆúÆ®ÀÇ ÄÜÆ®·Ñ·¯ ( ƯÈ÷ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é IndexController
)
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.¸ðµâ ´ëÀÀÀÇ ÄÜÆ®·Ñ·¯¿¡ ´ëÇϰí, ¸ðµâ¸¸À» ÁöÁ¤ÇØ ÄÜÆ®·Ñ·¯¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Ò´ø °æ¿ì´Â, µð½ºÆÖÃÄ´Â ¿ì¼± ÃÖÃÊ·Î ¸ðµâ
ÆÐ½º³»ÀÇ µðÆúÆ® ÄÜÆ®·Ñ·¯¸¦ ã½À´Ï´Ù. ´ÙÀ½¿¡, ±Û·Î¹ú À̸§ °ø°£ 'default' ¿¡ ÀÖ´Â µðÆúÆ® ÄÜÆ®·Ñ·¯¸¦ ã½À´Ï´Ù.
µðÆúÆ®´Â Ç×»ó ±Û·Î¹ú À̸§ °ø°£ ÂÊÀ¸·Î ÇÏ°í ½ÍÀº °æ¿ì´Â, ÇÁ·±Æ® ÄÜÆ®·Ñ·¯·Î ÆÄ¶ó¹ÌÅÍ useGlobalDefault
(À»)¸¦
ÁöÁ¤ÇÕ´Ï´Ù.
$front->setParam('useGlobalDefault', true);