¸ñÂ÷
Zend_Controller
(Àº)´Â,Zend Framework ÀÇ MVC
½Ã½ºÅÛÀÇ Áß½ÉÀÌ µÇ´Â °ÍÀÔ´Ï´Ù.MVC ÇÏ ¸ðµ¨-ºä-ÄÜÆ®·Ñ·¯
ÀÇ ¸Ó¸® ±ÛÀÚ¸¦ ÃëÇÑ °ÍÀ¸·Î, ¾îÇø®ÄÉÀ̼ÇÀÇ ³í¸®¿Í Ç¥½Ã ³í¸®¸¦ ºÐ¸®½ÃŰ´Â ¼³°è ¼ö¹ýÀÔ´Ï´Ù.
Zend_Controller_Front
ÇÏ
ÇÁ·±Æ® ÄÜÆ®·Ñ·¯ ÆÐÅÏÀ» ½ÇÀåÇϰí ÀÖ¾î,
¸ðµç ¸®Äù½ºÆ®¸¦ ÀÏ´Ü ÇÁ·±Æ® ÄÜÆ®·Ñ·¯·Î ¹ÞÀº ´ÙÀ½ ±×
URL ¿¡ ÀǰÅÇÑ ¾×¼Ç ÄÜÆ®·Ñ·¯¿¡ ¹è¼ÛÇÕ´Ï´Ù.
Zend_Controller
(Àº)´Â, È®À强À» °í·ÁÇØ ÀÛ¼ºµÇ°í ÀÖ½À´Ï´Ù.
È®ÀåÀÇ ¹æ¹ýÀ¸·Î¼´Â, ±âÁ¸ÀÇ Å¬·¡½ºÀÇ ¼ºê Ŭ·¡½º¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ý°ú
¾×¼Ç ÇïÆÛ¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
»õ·Î¿î ¼ºê Ŭ·¡½º¸¦ ÀÛ¼ºÇϸé, ÄÜÆ®·Ñ·¯ Ŭ·¡½ºÀÇ ±â¹ÝÀÌ µÈ´Ù
ÀÎÅÍÆäÀ̽º³ª ±â´ÉÀ» »õ·Ó°Ô ¾µ ¼ö ÀÖ½À´Ï´Ù.
¾×¼Ç ÇïÆÛ¸¦ »ç¿ëÇϸé, ½Ã½ºÅÛÀÇ ±â´ÉÀ» °ÈÇϰųª º¯°æÇϰųª ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¾Ë°í ½ÍÀº °æ¿ì´Â, ´ÙÀ½ÀÇ ¼½¼ÇÀ» ÂüÁ¶ÇØ ÁֽʽÿÀ. ¿ì¼± ¿òÁ÷¿© º¸°í ½Í´Ù°í ÇÏ´Â ºÐÀº, ¿©±â¸¦ ÀÐÀ¸¸é ÁÁÀ» °ÍÀÔ´Ï´Ù.
¿ì¼±Àº µð·ºÅ丮 ±¸¼ºÀ» °áÁ¤ÇսôÙ. ÀüÇüÀûÀÎ ·¹À̾ƿôÀº, ´ÙÀ½°ú °°Àº °ÍÀÔ´Ï´Ù.
application/
controllers/
IndexController.php
models/
views/
scripts/
index/
index.phtml
helpers/
filters/
html/
.htaccess
index.php
À§ÀÇ ·¹À̾ƿôÀÇ html/.htaccess
ÆÄÀÏÀ», ´ÙÀ½°ú °°ÀÌ ÆíÁýÇÕ´Ï´Ù.
RewriteEngine on
RewriteRule !.(js|ico|gif|jpg|png|css)$ index.php
ÀÌ ·êÀº, ÀÚ¿ø (È»óÀ̳ª ½ºÅ¸ÀÏ ½ÃÆ®) ÀÌ¿ÜÀÇ ¸ðµç ¸®Äù½ºÆ®¸¦ ÇÁ·±Æ® ÄÜÆ®·Ñ·¯¿¡ Àü¼Û ÇÕ´Ï´Ù. À̿ܿ¡µµ ÇÁ·±Æ® ÄÜÆ®·Ñ·¯¿¡ µ¹¸®°í ½ÍÁö ¾ÊÀº È®ÀåÀÚ(extension)°¡ ÀÖ´Â °æ¿ì (PDF (ÀÌ)³ª ÅØ½ºÆ® ÆÄÀÏ µî) (Àº)´Â, ±× È®ÀåÀÚ(extension)¸¦ Ãß°¡ÇϵçÁö rewrite ·êÀ» µ¶ÀÚÀûÀ¸·Î ÀÛ¼ºÇϰųª ÇսôÙ.
![]() |
ÁÖÀÇ |
---|---|
À§ÀÇ rewrire ·êÀº Apache ¿ë¹«ÀÇ °ÍÀÔ´Ï´Ù. ±× ¿ÜÀÇ À¥ ¼¹ö¿ëÀÇ ¿¹¿¡ ´ëÇØ¼´Â ¶ó¿ìÅÍÀÇ ¹®¼ (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ. |
±âµ¿ ÆÄÀϰú´Â ¸ðµç ¸®Äù½ºÆ®ÀÇ Àü¼Ûó°¡ µÇ´Â ÆÄÀÏ·Î,
À̹ø ¿¹¿¡¼´Â html/index.php
ÇÏÁö¸¸ °Å±â¿¡ ¸ÂÀ¾´Ï´Ù.
html/index.php
(À»)¸¦ ÁÁ¾ÆÇÏ´Â ¿¡µðÅÍ·Î ¿·Á, ´ÙÀ½ÀÇ ³»¿ëÀ» Ãß°¡ÇÕ´Ï´Ù.
<?php
require_once 'Zend/Controller/Front.php';
Zend_Controller_Front::run('/path/to/app/controllers');
À̰ÍÀº, ÇÁ·±Æ® ÄÜÆ®·Ñ·¯ÀÇ ÀνºÅϽº¿Í µð½ºÆÌÄ¡¸¦ ½Ç½ÃÇÕ´Ï´Ù. ÀÌ °á°ú, ¾ÆÄí¾Æº»ÄÜÆ®·Ñ·¯¿¡ ¸®Äù½ºÆ®°¡ Àü¼Û µË´Ï´Ù.
¾×¼Ç ÄÜÆ®·Ñ·¯¿¡ ´ëÇØ ¼³¸íÇϱâ Àü¿¡, ¿ì¼±
Zend Framework (À¸)·ÎÀÇ ¸®Äù½ºÆ®ÀÇ Ã³¸® ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æ µÓ½Ã´Ù.
µðÆúÆ®¿¡¼´Â,URL ÆÐ½ºÀÇ ÃÖÃÊÀÇ ºÎºÐÀÌ ÄÜÆ®·Ñ·¯,
±×¸®°í ±× ´ÙÀ½ÀÇ ºÎºÐÀÌ ¾×¼Ç¿¡ ´ëÀÀÇÕ´Ï´Ù.¿¹¸¦ µé¾î URL ÇÏÁö¸¸
http://framework.zend.com/roadmap/components
ÀÎ °æ¿ì, ÆÐ½º´Â /roadmap/components
µÇ¾î, À̰ÍÀº roadmap
ÄÜÆ®·Ñ·¯ÀÇ
components
¾×¼Ç¿¡ ´ëÀÀÇÕ´Ï´Ù.
¾×¼ÇÀ» »ý·« ÇßÀ» °æ¿ì´Â index
¾×¼ÇÀÌ´Ù°í º¸ÀÔ´Ï´Ù.
¶Ç ÄÜÆ®·Ñ·¯¸¦ »ý·« ÇßÀ» °æ¿ì´Â index
ÄÜÆ®·Ñ·¯ÀÌ´Ù°í º¸ÀÔ´Ï´Ù
(Apache ÇÏÁö¸¸ ÀÚµ¿ÀûÀ¸·Î DirectoryIndex
¿¡ ´ëÀÀ½ÃŲ´Ù°í ÇÏ´Â ±Ô¾à¿¡ µû¶ó¼ ÀÖ½À´Ï´Ù).
Zend_Controller
ÀÇ µð½ºÆÖÃÄ´Â,
ÄÜÆ®·Ñ·¯¸¦ ´ëÀÀÇϴ Ŭ·¡½º¿¡ °ü·ÃÁþ½À´Ï´Ù.
µðÆúÆ®¿¡¼´Â, ÄÜÆ®·Ñ·¯¸íÀÇ ¼±µÎ¸¦ ´ë¹®ÀÚ·Î ÇÑ °Í¿¡
Controller
(À»)¸¦ ¿¬°áÇÑ °ÍÀÌ Å¬·¡½º¸íÀÌ µË´Ï´Ù.
Áï, À§ÀÇ ¿¹¿¡¼´Â roadmap
ÄÜÆ®·Ñ·¯°¡
RoadmapController
Ŭ·¡½º¿¡ ´ëÀÀÇÏ°Ô µË´Ï´Ù.
°°ÀÌ ¾×¼Çµµ ÄÜÆ®·Ñ·¯ Ŭ·¡½ºÀÇ ¸Þ¼Òµå¿¡ °ü·ÃÁþ½À´Ï´Ù.
µðÆúÆ®¿¡¼´Â, ¾×¼Ç¸íÀ» ¼Ò¹®ÀÚ·Î º¯È¯ÇØ
Action
(À»)¸¦ Ãß°¡ÇÑ °ÍÀÌ ¸Þ¼Òµå¸íÀÌ µË´Ï´Ù.
Áï, À§ÀÇ ¿¹¿¡¼´Â components
¾×¼ÇÀº
componentsAction
¸Þ¼Òµå°¡ µÇ¾î, ÃÖÁ¾ÀûÀ¸·Î
RoadmapController::componentsAction()
ÇÏÁö¸¸ ÄÝ µÇ°Ô µË´Ï´Ù.
°è¼Ó µÇ°í, µðÆúÆ®ÀÇ ¾×¼Ç ÄÜÆ®·Ñ·¯¿Í
¾×¼Ç ¸Þ¼Òµå¸¦ ¸¸µé¾î º¾½Ã´Ù.
¹æ±ÝÀü ¼³¸íÇÑ °Íó·³, µðÆúÆ®ÀÇ ÄÜÆ®·Ñ·¯¸í ¹× ¾×¼Ç¸íÀº ¾î´ÀÂÊÀ̳ª
index
µË´Ï´Ù.
application/controllers/IndexController.php
(À»)¸¦ ¿¾î, ´ÙÀ½ÀÇ ³»¿ëÀ» ÀÔ·ÂÇսôÙ.
<?php
/** Zend_Controller_Action */
require_once 'Zend/Controller/Action.php';
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
}
}
}
µðÆúÆ®¿¡¼´Â
ViewRenderer
¾×¼Ç ÇïÆÛ°¡ À¯È¿ÇÏ°Ô µË´Ï´Ù.Áï,
¾×¼Ç ¸Þ¼Òµå¿Í °Å±â¿¡ ´ëÀÀÇÏ´Â ºä½ºÅ©¸³Æ®¸¦ ÁغñÇϸé,
°ð¹Ù·Î ±× ³»¿ëÀ» ·»´õ¸µ ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù.
µðÆúÆ®¿¡¼´Â,MVCÀÇ ºäÃþÀ¸·Î¼ Zend_View
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
ViewRenderer
(Àº)´Â, ÄÜÆ®·Ñ·¯¸í
(¿¹¸¦ µé¾î index
) (¿Í)°ú ¾×¼Ç¸í
(¿¹¸¦ µé¾î index
) (À¸)·ÎºÎÅÍ Ã³¸®ÇÏ´Â ÅÛÇø´À» °áÁ¤ÇÕ´Ï´Ù.
µðÆúÆ®¿¡¼´Â, ÅÛÇø´ÀÇ È®ÀåÀÚ(extension)´Â
.phtml
µË´Ï´Ù.Áï, À§ÀÇ ¿¹¿¡¼´Â
index/index.phtml
(À»)¸¦ ·»´õ¸µ ÇÕ´Ï´Ù.
ÇÑÃþ ´õ ViewRenderer
(Àº)´Â,
ÄÜÆ®·Ñ·¯¿Í µ¿ÀÏ °èÃþ¿¡ ÀÖ´Ù views
µð·ºÅ丮¸¦ ÀÚµ¿ÀûÀ¸·Î ºäÀÇ ±âÀú µð·ºÅ丮·Î °£ÁÖÇØ,
views/scripts/
ºä½ºÅ©¸³Æ®°¡ µÎ¾îÁö´Â °ÍÀ̶ó°í »ý°¢ÇÕ´Ï´Ù.
µû¶ó¼, ½ÇÁ¦·Î ·»´õ¸µ µÇ´Â ÅÛÇø´Àº
application/views/scripts/index/index.phtml
µË´Ï´Ù.
¹æ±ÝÀü ¼³¸íÇÑ °Íó·³, ºä½ºÅ©¸³Æ®ÀÇ Àå¼Ò´Â
application/views/scripts/
ÀÔ´Ï´Ù.
µðÆúÆ® ÄÜÆ®·Ñ·¯¿¡ ÀÖ¾î¼ÀÇ µðÆúÆ®ÀÇ ¾×¼ÇÀÇ ºä½ºÅ©¸³Æ®´Â
application/views/scripts/index/index.phtml
µË´Ï´Ù.ÀÌ ÆÄÀÏÀ» ÀÛ¼ºÇØ, ¹«¾ùÀΰ¡ HTML (À»)¸¦ ÀÔ·ÂÇØ º¾½Ã´Ù.
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My first Zend Framework App</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
µðÆúÆ®·Î,
¿¡·¯ Çڵ鷯 Ç÷¯±× ÀÎ ÇÏÁö¸¸ µî·ÏµÇ¾î ÀÖ½À´Ï´Ù.
ÀÌ Ç÷¯±× ÀÎÀ» »ç¿ëÇÏ·Á¸é , ¿¡·¯ 󸮿ëÀÇ ÄÜÆ®·Ñ·¯°¡ ÇÊ¿äÇÕ´Ï´Ù.
µðÆúÆ® ¼³Á¤¿¡¼´Â, µðÆúÆ® ¸ðµâÀÇ
ErrorController
¿¡ errorAction
±×·¸´Ù°í ÇÏ´Â ¸Þ¼Òµå°¡ ÀÖ´Â °ÍÀ» »óÁ¤Çϰí ÀÖ½À´Ï´Ù.
<?php
/** Zend_Controller_Action */
require_once 'Zend/Controller/Action.php';
class ErrorController extends Zend_Controller_Action
{
public function errorAction()
{
}
}
¹æ±ÝÀü ¼³¸íÇÑ µð·ºÅ丮 ±¸¼º¿¡ ÀÇÇØ, ÀÌ ÆÄÀÏÀº
application/controllers/ErrorController.php
¿¡ ¹èÄ¡µÇ°Ô µË´Ï´Ù.À̰Ͱú´Â º°µµ·Î, ºä½ºÅ©¸³Æ®
application/views/scripts/error/error.phtml
ÇÏÁö¸¸ ÇÊ¿äÇÕ´Ï´Ù.±× ³»¿ëÀº, ¿¹¸¦ µé¾î ´ÙÀ½°ú °°ÀÌ µÇ°ÚÁö¿ä.
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>¿¡·¯</title>
</head>
<body>
<h1>¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù</h1>
<p>¿¡·¯°¡ ¹ß»ýÇß½À´Ï´Ù.Àá½Ã ÈÄ¿¡ Çѹø ´õ ½ÃÇèÇØ ÁÖ¼¼¿ä.</p>
</body>
</html>
¿©±â±îÁö ¿À¸é, ½ÇÁ¦·Î ºê¶ó¿ìÀú·Î »çÀÌÆ®¸¦ Ç¥½ÃÇØ º¼ ¼ö ÀÖ½À´Ï´Ù.
´ç½ÅÀÇ µµ¸ÞÀÎÀÌ example.com
(ÀÌ)¶ó°í Çϸé,
ÀÌÇÏÀÇ ¸î°³ÀÇ URL ±×¸®°í ¹æ±ÝÀü ÀÛ¼ºÇÑ ÆäÀÌÁö°¡ Ç¥½ÃµÇ°ÚÁö¿ä.
http://example.com/
http://example.com/index
http://example.com/index/index
À̰ÍÀ¸·Î, ½ÇÁ¦·Î ÄÜÆ®·Ñ·¯³ª ¾×¼ÇÀ» ÀÛ¼ºÇÒ Áغñ¸¦ ÇÒ ¼ö ÀÖ¾ú½À´Ï´Ù. ÃàÇÏÇÕ´Ï´Ù!