ºä½ºÅ©¸³Æ® Áß(¾È)¿¡¼, º¹ÀâÇÑ ÇÔ¼ö¸¦ ¹Ýº¹ÇØ ½ÇÇàÇØ¾ß ÇÏ´Â °Íµµ ÀÖ°ÚÁö¿ä (¿¹¸¦ µé¸é ÀÏÀÚÀÇ Æ÷¸Ë, Æû ¿ä¼ÒÀÇ ÀÛ¼º, ¸µÅ©ÀÇ ÀÛ¼º µî). ÀÌ·¯ÇÑ ÀÛ¾÷À» ½Ç½ÃÇϱâ À§Çؼ, ÇïÆÛ Ŭ·¡½º¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÇïÆÛÀÇ Á¤Ã¼´Â, ´Ü¼øÇÑ Å¬·¡½ºÀÔ´Ï´Ù.¿¹¸¦ µé¾î 'fooBar' (ÀÌ)¶ó´Â À̸§ÀÇ ÇïÆÛ¸¦ »ç¿ëÇÑ´Ù°í ÇսôÙ.
µðÆúÆ®¿¡¼´Â, Ŭ·¡½º¸íÀÇ ¼±µÎ¿¡´Â 'Zend_View_Helper_'
ÇÏÁö¸¸ ´ÙÇÕ´Ï´Ù (ÇïÆÛ ÆÐ½º¸¦ ¼³Á¤ÇÒ ¶§¿¡, À̰ÍÀº µ¶ÀÚÀûÀÎ °ÍÀ¸·Î º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù).
±×¸®°í Ŭ·¡½º¸íÀÇ ¸¶Áö¸· ºÎºÐÀÌ ÇïÆÛÀÇ À̸§ÀÌ µË´Ï´Ù.
ÀÌ ¶§, ´Ü¾îÀÇ ¼±µÎ´Â ´ë¹®ÀÚ·Î ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.Áï,
ÇïÆÛÀÇ Å¬·¡½º¸íÀº Zend_View_Helper_FooBar
µË´Ï´Ù.ÀÌ Å¬·¡½º¿¡´Â, ÃÖÀúÇÑ ÇïÆÛ¸í°ú °°Àº À̸§ (camelCase Çü½ÄÀ¸·Î ÇÑ °Í)
ÀÇ ¸Þ¼Òµå fooBar()
ÇÏÁö¸¸ Æ÷ÇÔµÇÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
![]() |
´ë¹®ÀÚ ¼Ò¹®ÀÚÀÇ Ãë±Þ |
---|---|
ÇïÆÛ¸íÀº Ç×»ó camelCase Çü½ÄÀÌ µË´Ï´Ù. Áï, óÀ½Àº Ç×»ó ¼Ò¹®ÀÚ°¡ µË´Ï´Ù. Ŭ·¡½º¸íÀº CamelCase Çü½ÄÀÔ´Ï´Ù¸¸, ½ÇÁ¦·Î ½ÇÇàµÇ´Â ¸Þ¼Òµå´Â camelCase Çü½ÄÀÌ µË´Ï´Ù. |
![]() |
µðÆúÆ®ÀÇ ÇïÆÛ ÆÐ½º |
---|---|
µðÆúÆ®ÀÇ ÇïÆÛ ÆÐ½º´Â Ç×»ó Zend Framework
ÀÇ ºäÇïÆÛÀÇ ÆÐ½º, Áï 'Zend/View/Helper/' µË´Ï´Ù.
|
ºä½ºÅ©¸³Æ®³»¿¡¼ ÇïÆÛ¸¦ »ç¿ëÇÏ·Á¸é ,
$this->helperName()
(À»)¸¦ ÄÝ ÇÕ´Ï´Ù.À̰ÍÀ» ÄÝ Çϸé, µÚÆí¿¡¼´Â
Zend_View
ÇÏÁö¸¸ Zend_View_Helper_HelperName
Ŭ·¡½º¸¦ Àоîµé¿©,
±× Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇØ helperName()
¸Þ¼Òµå¸¦ ÄÝ ÇÕ´Ï´Ù.
¿ÀºêÁ§Æ®ÀÇ ÀνºÅϽº´Â Zend_View
ÀνºÅϽº¾È¿¡ °è¼Ó ³²¾Æ
´ÙÀ½¿¡ $this->helperName()
ÇÏÁö¸¸ ÄÝ µÇ¾úÀ» ¶§¿¡´Â ÀçÀÌ¿ëµË´Ï´Ù.
Zend_View
¿¡´Â, ½ÃÀÛÇØ ¸Å¿î ±¸µÎÀΰ¡ÀÇ ÇïÆÛ Ŭ·¡½º°¡ ºÎ¼ÓµÇ¾î ÀÖ½À´Ï´Ù.
ÀÌ·¯ÇÑ ´ëºÎºÐÀº Æû ¿ä¼ÒÀÇ »ý¼º¿¡ °üÇÑ °ÍÀ¸·Î,
ÀûÀýÇÑ À̽ºÄÉÀÌÇÁ 󸮸¦ ÀÚµ¿ÀûÀ¸·Î ½Ç½ÃÇÕ´Ï´Ù.
°Ô´Ù°¡ ·çÆ®¿¡ ÀǰÅÇß´Ù URL (¿Í)°ú HTML ÀÇ À϶÷À» ÀÛ¼ºÇϰųª
º¯¼ö¸¦ ¼±¾ðÇϰųª ÇÏ´Â °Íµµ ÀÖ½À´Ï´Ù.
ÇöÀç ºÎ¼ÓµÇ¾î ÀÖ´Â ÇïÆÛ´Â, ´ÙÀ½°ú °°½À´Ï´Ù.
declareVars():
strictVars()
(À»)¸¦ »ç¿ëÇÒ ¶§¿¡ µ¿½Ã¿¡ »ç¿ëÇÕ´Ï´Ù.
ÀÌ ÇïÆÛ¸¦ »ç¿ëÇϸé, ÅÛÇø´ º¯¼ö¸¦ ¼±¾ðÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ º¯¼ö´Â, ¹ú½á ºä½ºÅ©¸³Æ®·Î ¼³Á¤µÇ¾î ÀÖ´Â °ÍÀÌ¶óµµ ¾ø´Â °ÍÀÌ¶óµµ ±¦Âú½À´Ï´Ù.
¶Ç, µ¿½Ã¿¡ µðÆúƮġµµ ¼³Á¤ÇÕ´Ï´Ù.
ÀÌ ¸Þ¼Òµå¿¡ÀÇ Àμö·Î¼ ¹è¿À» °Ç³×ÁÖ¸é µðÆúƮġ¸¦ ¼³Á¤ÇÕ´Ï´Ù.
±× ÀÌ¿ÜÀÇ °æ¿ì´Â, ¸¸¾à ±× º¯¼ö°¡ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â °ø¹®ÀÚ¿À» ¼³Á¤ÇÕ´Ï´Ù.
formButton($name, $value, $attribs):
<input
type="button" /> ¿ä¼Ò¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
formCheckbox($name, $value, $attribs, $options):
<input type="checkbox" /> ¿ä¼Ò¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
$options ÆÄ¶ó¹ÌÅÍ´Â ¹è¿·Î, ÃÖÃÊÀÇ °ªÀÌ
"checked" ¿¡ ´ëÀÀÇÏ´Â °ª,2 ¹øÂ°°¡ "unchecked" ¿¡ ´ëÀÀÇÏ´Â °ªÀÌ µË´Ï´Ù
(µðÆúÆ®´Â '1' ¹× '0' ÀÔ´Ï´Ù).$value ÇÏÁö¸¸
"checked" ÀÇ °ª¿¡ ÀÏÄ¡Çϸé, üũ ¹Ú½º°¡ üũµÈ »óŰ¡ µË´Ï´Ù.
formFile($name, $value, $attribs):
<input
type="file" /> ¿ä¼Ò¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
formHidden($name, $value, $attribs):
<input
type="hidden" /> ¿ä¼Ò¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
formLabel($name, $value, $attribs):
<label> ¿ä¼Ò¸¦ ÀÛ¼ºÇÕ´Ï´Ù.for
¼Ó¼ºÀÇ °ªÀº
$name
¿¡, ±×¸®°í ¶óº§ÀÇ ÅØ½ºÆ®´Â
$value
(ÀÌ)°¡ µË´Ï´Ù.
attribs
¿¡ disable
(À»)¸¦ °Ç³×ÁÖ¸é, °á°ú¸¦ ¾Æ¹«°Íµµ µ¹·ÁÁÖÁö ¾Ê½À´Ï´Ù.
formPassword($name, $value, $attribs):
<input
type="password" /> ¿ä¼Ò¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
formRadio($name, $value, $attribs, $options):
ÀÏ·ÃÀÇ <input type="radio" /> ¿ä¼Ò¸¦,
$options ÀÇ ¿ä¼Ò ¸¶´Ù ÀÛ¼ºÇÕ´Ï´Ù.$options (Àº)´Â,
¶óµð¿À ¹öưÀÇ °ªÀ» Ű, ¶óº§À» °ªÀ¸·Î ÇÏ´Â ¹è¿ÀÌ µË´Ï´Ù.
$value (Àº)´Â ¶óµð¿À ¹öưÀÇ Ãʱ⠼±Åà »óŸ¦ ¼³Á¤ÇÕ´Ï´Ù.
formReset($name, $value, $attribs):
<input
type="reset" /> ¿ä¼Ò¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
formSelect($name, $value, $attribs, $options):
<select>...</select> ºí·ÏÀ» ÀÛ¼ºÇÕ´Ï´Ù.
$options ÀÇ ¿ä¼Ò ¸¶´Ù <option> (À»)¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
$options (Àº)´Â, ¼±ÅûçÇ×ÀÇ °ªÀ» Ű,
¶óº§À» °ªÀ¸·Î ÇÏ´Â ¹è¿ÀÌ µË´Ï´Ù.$value
(Àº)´Â Ãʱ⠼±Åà »óŸ¦ ¼³Á¤ÇÕ´Ï´Ù.
formSubmit($name, $value, $attribs):
<input
type="submit" /> ¿ä¼Ò¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
formText($name, $value, $attribs):
<input
type="text" /> ¿ä¼Ò¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
formTextarea($name, $value, $attribs):
<textarea>...</textarea> ºí·ÏÀ» ÀÛ¼ºÇÕ´Ï´Ù.
url($urlOptions, $name, $reset):
ÁöÁ¤ÇÑ ·çÆ®¿¡ ÀǰÅÇÑ´Ù URL ¹®ÀÚ¿À» ÀÛ¼ºÇÕ´Ï´Ù.
$urlOptions
(Àº)´Â, ±× ·çÆ®·Î »ç¿ëÇÑ´Ù
Ű/Ä¡ ÀÇ Æä¾îÀÇ ¹è¿ÀÌ µË´Ï´Ù.
htmlList($items, $ordered, $attribs, $escape):
$items
±×¸®°í °Ç³×ÁØ ³»¿ëÀ» ±âÃÊ·Î
¼ø¼ ´ÙÇØ ¸®½ºÆ® ȤÀº ¼ø¼ ¾øÀ½ ¸®½ºÆ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù.
$items
ÇÏÁö¸¸ ´ÙÂ÷¿ø ¹è¿ÀÇ °æ¿ì´Â, »óÀÚÀåÀÇ ¸®½ºÆ®°¡ µË´Ï´Ù.
$escape
Ç÷¡±×¸¦ true (µðÆúÆ®) (À¸)·Î Çϸé,
°¢ Ç׸ñÀº ºä¿ÀºêÁ§Æ®¿¡ µî·ÏµÇ¾î ÀÖ´Â À̽ºÄÉÀÌÇÁ ¹æ½ÄÀ¸·Î À̽ºÄÉÀÌÇÁ µË´Ï´Ù.
¸®½ºÆ®³»¿¡¼ ¸¶Å© ¾÷À» ½Ç½ÃÇÏ°í ½ÍÀº °æ¿ì´Â false (À»)¸¦ °Ç³×ÁÝ´Ï´Ù.
À̰͵éÀ» ºä½ºÅ©¸³Æ®³»¿¡¼ »ç¿ëÇÏ´Â °ÍÀº ¸Å¿ì °£´ÜÇÕ´Ï´Ù. ÀÌÇÏ¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.´ÜÁö ´ÜÁö, ÇïÆÛ¸¦ ÄÝ ÇÏ´Â °Í¸¸À¸·Î ÁÁÀº °Í¿¡ ÁÖÀÇÇսôÙ. Àб⳪ ÀνºÅϽº ÀÛ¼ºÀº, Çʿ信 µû¶ó¼ ÀÚµ¿ÀûÀ¸·Î ÇàÇØÁý´Ï´Ù.
<?php
// ºä½ºÅ©¸³Æ®³»¿¡¼´Â,$this ÇÏ Zend_View ÀÇ ÀνºÅϽº¸¦ °¡¸®Åµ´Ï´Ù.
//
// select ÀÇ ¼±ÅûçÇ×À», º¯¼ö $countries ¿¡
// array('us' => 'United States', 'il' => 'Israel', 'de' => 'Germany')
// (À¸)·Î¼ ¼³Á¤ÀÌ ³¡³ »óÅÂÀ̱â·Î ÇϰڽÀ´Ï´Ù.
?>
<form action="action.php" method="post">
<p><label>¸ÞÀÏ ÁÖ¼Ò:
<?php echo $this->formText('email', 'you@example.com', array('size' => 32)) ?>
</label></p>
<p><label>±¹:
<?php echo $this->formSelect('country', 'us', null, $this->countries) ?>
</label></p>
<p><label>¸ÞÀÏÀ» ¹Þ½À´Ï±î?
<?php echo $this->formCheckbox('opt_in', 'yes', null, array('yes', 'no')) ?>
</label></p>
</form>
ºä½ºÅ©¸³Æ®ÀÇ Ãâ·Â °á°ú´Â, ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù.
<form action="action.php" method="post">
<p><label>¸ÞÀÏ ÁÖ¼Ò:
<input type="text" name="email" value="you@example.com" size="32" />
</label></p>
<p><label>±¹:
<select name="country">
<option value="us" selected="selected">United States</option>
<option value="il">Israel</option>
<option value="de">Germany</option>
</select>
</label></p>
<p><label>¸ÞÀÏÀ» ¹Þ½À´Ï±î?
<input type="hidden" name="opt_in" value="no" />
<input type="checkbox" name="opt_in" value="yes" checked="checked" />
</label></p>
</form>
Action
ºäÇïÆÛ´Â,
ºä½ºÅ©¸³Æ®·ÎºÎÅÍ ÁöÁ¤ÇÑ ÄÜÆ®·Ñ·¯ÀÇ ¾×¼ÇÀ» ½ÇÇàÇØ,
±× °á°úÀÇ ¸®½ºÆù½º ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.
À̰ÍÀº, ƯÁ¤ÀÇ ¾×¼ÇÀÌ ÀçÀÌ¿ë °¡´ÉÇÑ ÄÁÅÙÃ÷¸¦ µ¹·ÁÁÖ´Â °æ¿ì³ª,
À̸¥¹Ù "À§Á¦Æ®Ç³" ÀÇ ÄÁÅÙÃ÷¸¦ µ¹·ÁÁÖ´Â °æ¿ì¿¡ Æí¸®ÇÕ´Ï´Ù.
ÃÖÁ¾ÀûÀ¸·Î _forward()
µÇ°Å³ª ¸®µð·ºÆ® µÇ°Å³ª ÇÏ´Â ¾×¼ÇÀº »ç¿ëÇÏÁö ¸øÇϰí,
ÇÏ´ÃÀÇ ¹®ÀÚ¿À» µ¹·ÁÁÝ´Ï´Ù.
Action
ºäÇïÆÛÀÇ API
(Àº)´Â ÄÜÆ®·Ñ·¯ ¾×¼ÇÀ» ±âµ¿ÇÏ´Â ´ëºÎºÐÀÇ MVC
ÄÄÆÛ³ÍÆ®¿Í °°°í,action($action,
$controller, $module = null, array $params = array())
(¿Í)°ú °°ÀÌ µË´Ï´Ù.$action
(¿Í)°ú $controller
(Àº)´Â ÇʼöÀÔ´Ï´Ù.¸ðµâÀ» »ý·« ÇßÀ» °æ¿ì´Â µðÆúÆ®ÀÇ ¸ðµâÀ» »ç¿ëÇÕ´Ï´Ù.
·Ê 41.1. Action ºäÇïÆÛÀÇ ±âº»ÀûÀÎ »ç¿ë¹ý
¿¹¸¦ µé¾î CommentController
¿¡
listAction()
±×·¸´Ù°í ÇÏ´Â ¸Þ¼Òµå°¡ ÀÖ¾ú´Ù°í ÇսôÙ.
ÄÚ¸àÆ® À϶÷À» ÃëµæÇϱâ À§Çؼ ÇöÀçÀÇ ¸®Äù½ºÆ®·ÎºÎÅÍ ÀÌ ¸Þ¼Òµå¸¦ ±âµ¿ÇÏ·Á¸é ,
´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.
<div id="sidebar right">
<div class="item">
<?= $this->action('list', 'comment', null, array('count' => 10)); ?>
</div>
</div>
Partial
ºäÇïÆÛ´Â,
ÁöÁ¤ÇÑ ÅÛÇø´À» ÀÚ±â ÀÚ½ÅÀÇ º¯¼ö ½ºÄÚÇÁ³»¿¡¼ ·»´õ¸µ ÇÕ´Ï´Ù.
ÁÖµÈ ¿ëµµ´Â,
ÀçÀÌ¿ë °¡´ÉÇÑ ºÎºÐ ÅÛÇø´À» º¯¼ö¸íÀÇ °æÇÕÀ» ½Å°æ¾²Áö ¾Ê°í »ç¿ëÇÑ´Ù°í ÇÏ´Â °ÍÀÔ´Ï´Ù.
°Ô´Ù°¡ ƯÁ¤ÀÇ ¸ðµâ·ÎºÎÅÍ ºÎºÐ ºä½ºÅ©¸³Æ®¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
Partial
(¿Í)°ú ÇüÁ¦ °ü°è¿¡ ÀÖ´Ù PartialLoop
ºäÇïÆÛ´Â, ¹Ýº¹ ó¸® °¡´ÉÇÑ µ¥ÀÌÅ͸¦ °Ç³×ÁÖ¾î
±× °¢ ¿ä¼Ò¿¡ ´ëÇØ¼ ·»´õ¸µÀ» ½Ç½ÃÇÏ´Â °ÍÀÔ´Ï´Ù.
·Ê 41.2. Partial ÀÇ ±âº»ÀûÀÎ »ç¿ë¹ý
partial ÀÇ ±âº»ÀûÀÎ »ç¿ë¹ýÀº, ÀÚ±â ÀÚ½ÅÀÇ ºäÀÇ ½ºÄÚÇÁ·Î ºÎºÐ ÅÛÇø´À» ·»´õ¸µ ÇÏ´Â °ÍÀÔ´Ï´Ù. ´ÙÀ½°ú °°Àº ½ºÅ©¸³Æ®¸¦ »ý°¢ÇØ º¾½Ã´Ù.
<?php // partial.phtml ?>
<ul>
<li>From: <?= $this->escape($this->from) >?</li>
<li>Subject: <?= $this->escape($this->subject) >?</li>
</ul>
À̰ÍÀ», ºä½ºÅ©¸³Æ®·ÎºÎÅÍ ´ÙÀ½°ú °°ÀÌ ÄÝ ÇÕ´Ï´Ù.
<?= $this->partial('partial.phtml', array(
'from' => 'Team Framework',
'subject' => 'view partials')); ?>
·»´õ¸µ ÇÑ °á°ú´Â, ÀÌ¿Í °°ÀÌ µË´Ï´Ù.
<ul>
<li>From: Team Framework</li>
<li>Subject: view partials</li>
</ul>
![]() |
¸ðµ¨Àº ¹«¾ù? |
---|---|
|
·Ê 41.3. PartialLoop ¿¡ ÀÇÇÑ ¹Ýº¹ ó¸® °¡´ÉÇÑ ¸ðµ¨ÀÇ ·»´õ¸µ
ÀϹÝÀûÀ¸·Î, ·çÇÁ³»¿¡¼ partial (À»)¸¦ »ç¿ëÇØ ƯÁ¤ÀÇ ÄÁÅÙÃ÷¸¦ ¹Ýº¹ÇØ ·»´õ¸µ ÇÏ°í ½Í¾îÁö±âµµ ÇϰÚÁö¿ä. ÀÌ·¸°Ô ÇÏ´Â °ÍÀ¸·Î, ¹Ýº¹ Ç¥½ÃµÇ´Â ´ë·®ÀÇ ÄÁÅÙÃ÷³ª º¹ÀâÇÑ Ç¥½Ã ³í¸®¸¦ Çϳª·Î Á¤¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, ÀÌ ¹æ¹ýÀº ÆÛÆ÷¸Õ½º¿¡ ¿µÇâÀ» ¹ÌĨ´Ï´Ù. ±×·¸´Ù°í ÇÏ´Â °Íµµ,partial ÇïÆÛ¸¦ ·çÇÁ³»¿¡¼ ¸Åȸ ½ÇÇàÇÏ°Ô µÇ±â ¶§¹®ÀÔ´Ï´Ù.
PartialLoop
ºäÇïÆÛ´Â,
ÀÌ ¹®Á¦¸¦ ÇØ°áÇÕ´Ï´Ù.À̰ÍÀ» »ç¿ëÇϸé, ¹Ýº¹ ó¸® °¡´ÉÇÑ ³»¿ë
(¹è¿, ȤÀº Iterator
(À»)¸¦ ½ÇÀåÇÑ ¿ÀºêÁ§Æ®)
(À»)¸¦ ¸ðµ¨¿¡ °Ç³×ÁÙ ¼ö ÀÖ°Ô µË´Ï´Ù.
±×¸®°í ±× °¢ ¿ä¼Ò°¡ partial ½ºÅ©¸³Æ®¿¡ ¸ðµ¨·Î¼ °Ç³×¹Þ½À´Ï´Ù.
°¢ ¿ä¼ÒÀÇ ³»¿ëÀº,Partial
ºäÇïÆÛ°¡ ¹Þ¾ÆµéÀÌ´Â ÀÓÀÇÀÇ Çü½ÄÀÇ ¸ðµ¨·Î ÇÒ ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½°ú °°Àº ºÎºÐ ºä½ºÅ©¸³Æ®¸¦ »ý°¢ÇÕ´Ï´Ù.
<? // partialLoop.phtml ?>
<dt><?= $key ?></dt>
<dd><?= $value ?></dd>
±×¸®°í "¸ðµ¨" (Àº)´Â ÀÌ¿Í °°ÀÌ µË´Ï´Ù.
<?php
$model = array(
array('key' => 'Mammal', 'value' => 'Camel'),
array('key' => 'Bird', 'value' => 'Penguin'),
array('key' => 'Reptile', 'value' => 'Asp'),
array('key' => 'Fish', 'value' => 'Flounder'),
);
?>
±×¸®°í, ºä½ºÅ©¸³Æ®³»¿¡¼
PartialLoop
ÇïÆÛ¸¦ ½ÇÇàÇÕ´Ï´Ù.
<dl>
<?= $this->partialLoop('partialLoop.phtml', $model) ?>
</dl>
<dl></dl>
<dt>Mammal</dt>
<dd>Camel</dd>
<dt>Bird</dt>
<dd>Penguin</dd>
<dt>Reptile</dt>
<dd>Asp</dd>
<dt>Fish</dt>
<dd>Flounder</dd>
</dl>
·Ê 41.4. ´Ù¸¥ ¸ðµâÀÇ Partial ÀÇ ·»´õ¸µ
½Ã°£¿¡´Â partial ÇÏÁö¸¸ ´Ù¸¥ ¸ðµâ¿¡ Á¸ÀçÇϱ⵵ ÇϰÚÁö¿ä.
±× ¸ðµâÀÇ À̸§À» ¾Ë ¼ö ÀÖ°í ÀÖÀ¸¸é, ¸ðµâ¸íÀ»
partial()
ȤÀº partialLoop()
ÀÇ 2 ¹øÂ°ÀÇ Àμö·Î¼ °Ç³×ÁÖ¾î,
$model
(À»)¸¦ 3 ¹øÂ°ÀÇ Àμö¿¡ À̵¿½Ãų ¼ö ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¾î,'list' ¸ðµâ¿¡ ÀÖ´Ù pager ±×·¸´Ù°í ÇÏ´Â ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÏ°í ½ÍÀº °æ¿ì´Â, ´ÙÀ½°ú °°ÀÌ ÇÕ´Ï´Ù.
<?= $this->partial('pager.phtml', 'list', $pagerData) ?>
ÀÌ·¸°Ô Çϸé, ƯÁ¤ÀÇ partial (À»)¸¦ ´Ù¸¥ ¸ðµâ·Î ÀçÀÌ¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ÀçÀÌ¿ë °¡´ÉÇÑ partial (Àº)´Â, °øÀ¯ÀÇ ºä½ºÅ©¸³Æ®ÀÇ ÆÐ½º¿¡ ¹èÄ¡ÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.
Placeholder
ºäÇïÆÛ´Â,
ºä½ºÅ©¸³Æ®¿Í ºäÀÇ ÀνºÅϽº¿ÍÀÇ »çÀÌ¿¡ ÄÁÅÙÃ÷¸¦ ¿µ¼ÓÈ ½Ãŵ´Ï´Ù.
±× ÀÌ¿ÜÀÇ Æí¸®ÇÑ ±â´ÉÀ¸·Î¼´Â ´ÙÀ½°ú °°Àº °ÍÀÌ ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¾î ÄÁÅÙÃ÷ÀÇ Áý¾à, ºä½ºÅ©¸³Æ®ÀÇ ³»¿ëÀ» ĸÃÄ ÇØ ´ÙÀ½¿¡ ÀçÀÌ¿ë,
ÄÁÅÙÃ÷ÀÇ ÀüÈÄ¿¡ÀÇ ÅØ½ºÆ®ÀÇ Ãß°¡ (±×¸®°í Áý¾àÇÑ ÄÁÅÙÃ÷°£ÀÇ separatorÀÇ Ãß°¡)
µîÀÔ´Ï´Ù.
·Ê 41.5. Ç÷¹À̽ºÈ¦´õÀÇ ±âº»ÀûÀÎ »ç¿ë¹ý
Ç÷¹À̽ºÈ¦´õÀÇ ±âº»ÀûÀÎ »ç¿ë¹ýÀº, ºäÀÇ µ¥ÀÌÅ͸¦ ¿µ¼ÓÈ ½ÃŰ´Â °ÍÀÔ´Ï´Ù.
Placeholder
ÇïÆÛ¸¦ ±âµ¿ÇÒ ¶§¿¡ Ç÷¹À̽ºÈ¦´õ¸íÀ» ÁöÁ¤ÇØ,
ÇïÆÛ´Â Ç÷¹À̽ºÈ¦´õ ÄÁÅ×ÀÌ³Ê ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.
À̰ÍÀ» ó¸®ÇϵçÁö, ´Ü¼øÇÏ°Ô echo Çϰųª ÇØ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
<?php $this->placeholder('foo')->set("Some text for later") ?>
<?php
echo $this->placeholder('foo');
// Ãâ·ÂÀº "Some text for later" µË´Ï´Ù
?>
·Ê 41.6. Ç÷¹À̽ºÈ¦´õ¿¡ ÀÇÇÑ ÄÁÅÙÃ÷ÀÇ Áý¾à
Ç÷¹À̽ºÈ¦´õ¿¡ ÀÇÇÑ ÄÁÅÙÃ÷ÀÇ Áý¾àµµ, °¡²û Æí¸®ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ºä½ºÅ©¸³Æ®·Î º¯¼öÀÇ ¹è¿À» º¸°ü À¯ÁöÇØ, ´ÙÀ½¿¡ Ç¥½ÃÇϱâ À§ÇÑ ¸Þ¼¼Áö¸¦ ÃëµæÇØ µÎ¸é, ±×°ÍÀ» ¾î¶»°Ô ·»´õ¸µ Çұ ´ÙÀ½¿¡ °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Placeholder
ºäÇïÆÛ´Â,
ArrayObject
(À»)¸¦ °è½ÂÇÑ ÄÁÅ×À̳ʸ¦ »ç¿ëÇÕ´Ï´Ù.
À̰ÍÀº, ¹è¿À» º¸´Ù °í±â´É¿¡ Á¶ÀÛÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù.
°Ô´Ù°¡ ÄÁÅ×À̳ʿ¡ °Ý³³µÈ ³»¿ëÀ» Æ÷¸Ë Çϱâ À§Çؼ
´Ù¾çÇÑ ¸Þ¼Òµå°¡ ÁغñµÇ¾î ÀÖ½À´Ï´Ù.
setPrefix($prefix)
(Àº)´Â,
ÄÁÅÙÃ÷ÀÇ ¼±µÎ¿¡ ºÎ°¡ÇÏ´Â ÅØ½ºÆ®¸¦ ¼³Á¤ÇÕ´Ï´Ù.
getPrefix()
(À»)¸¦ »ç¿ëÇϸé,
±× ½ÃÁ¡¿¡¼ÀÇ ¼³Á¤ ³»¿ëÀ» ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
setPostfix($prefix)
(Àº)´Â,
ÄÁÅÙÃ÷ÀÇ ¸»¹Ì¿¡ ºÎ°¡ÇÏ´Â ÅØ½ºÆ®¸¦ ¼³Á¤ÇÕ´Ï´Ù.
getPostfix()
(À»)¸¦ »ç¿ëÇϸé,
±× ½ÃÁ¡¿¡¼ÀÇ ¼³Á¤ ³»¿ëÀ» ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
setSeparator($prefix)
(Àº)´Â,
°¢ ÄÁÅÙÃ÷ÀÇ »çÀÌ¿¡ »ðÀÔÇÏ´Â ÅØ½ºÆ®¸¦ ¼³Á¤ÇÕ´Ï´Ù.
getSeparator()
(À»)¸¦ »ç¿ëÇϸé,
±× ½ÃÁ¡¿¡¼ÀÇ ¼³Á¤ ³»¿ëÀ» ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
setIndent($prefix)
(Àº)´Â,
ÄÁÅÙÃ÷ÀÇ Àε§Æ®ÆøÀ» ¼³Á¤ÇÕ´Ï´Ù.
Á¤¼öÄ¡¸¦ °Ç³×ÁÖ¸é, °Ç³×¹ÞÀº ¼öÀÇ ½ºÆäÀ̽º¸¦ »ç¿ëÇÕ´Ï´Ù.
¹®ÀÚ¿À» °Ç³×ÁÖ¸é, ±× ¹®ÀÚ¿À» »ç¿ëÇÕ´Ï´Ù.
getIndent()
(À»)¸¦ »ç¿ëÇϸé,
±× ½ÃÁ¡¿¡¼ÀÇ ¼³Á¤ ³»¿ëÀ» ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
<!-- ÃÖÃÊÀÇ ºä½ºÅ©¸³Æ® -->
<?php $this->placeholder('foo')->exchangeArray($this->data) ?>
<!-- ´ÙÀ½¿¡ »ç¿ëÇÏ´Â ºä½ºÅ©¸³Æ® -->
<?php
$this->placeholder('foo')->setPrefix("<ul>n <li>")
->setSeparator("</li><li>n")
->setIndent(4)
->setPostfix("</li></ul>n");
?>
<?php
echo $this->placeholder('foo');
// ¼ø¼ ¾øÀ½ ¸®½ºÆ®¸¦ ¿¹»Ú°Ô Àε§Æ® ÇØ Ãâ·ÂÇÕ´Ï´Ù
?>
Placeholder
ÄÁÅ×ÀÌ³Ê ¿ÀºêÁ§Æ®´Â
ArrayObject
(À»)¸¦ °è½ÂÇϰí ÀÖÀ¸¹Ç·Î,
´Ü¼øÇÏ°Ô ÄÁÅ×À̳ʿ¡ °Ý³³ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó
±× ÄÁÅ×À̳ÊÀÇ Æ¯Á¤ÀÇ Å°¿¡ ÄÁÅÙÃ÷¸¦ °Ý³³ÇÏ´Â °Íµµ °£´ÜÇÕ´Ï´Ù.
Ű¿¡ÀÇ ¾×¼¼½º´Â, ¿ÀºêÁ§Æ®ÀÇ ÇÁ·ÓÆÛƼ³ª ¹è¿ÀÇ Å°ÀÇ ¸ÓÁö¾Ê¾Æ¿¡¼µµ °¡´ÉÇÕ´Ï´Ù.
<?php $this->placeholder('foo')->bar = $this->data ?>
<?php echo $this->placeholder('foo')->bar ?>
<?php
$foo = $this->placeholder('foo');
echo $foo['bar'];
?>
·Ê 41.7. Ç÷¹À̽ºÈ¦´õ¿¡ ÀÇÇÑ ÄÁÅÙÃ÷ÀÇ Ä¸ÃÄ
½Ã°£¿¡´Â, Ç÷¹À̽ºÈ¦´õÀÇ ³»¿ëÀ»
ÅÛÇø´¿¡ °Ç³×Áֱ⠽±°Ô ºä½ºÅ©¸³Æ®·Î º¸°ü À¯ÁöÇϱ⵵ ÇϰÚÁö¿ä.
Placeholder
ºäÇïÆÛ´Â,
ÀÓÀÇÀÇ ÄÁÅÙÃ÷¸¦ ĸÃÄ ÇØ ´ÙÀ½¿¡ ·»´õ¸µ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
±× ¶§¹®¿¡(À§ÇØ) »ç¿ëÇÑ´Ù API (Àº)´Â ´ÙÀ½°ú °°Àº °ÍÀÔ´Ï´Ù.
captureStart($type, $key)
(Àº)´Â,
ÄÁÅÙÃ÷ÀÇ Ä¸Ãĸ¦ °³½ÃÇÕ´Ï´Ù.
$type
(Àº)´Â,
Placeholder
ÀÇ Á¤¼ö APPEND
ȤÀº
SET
ÀÇ ¾ðÁ¨°¡µË´Ï´Ù.APPEND
(À»)¸¦ ÁöÁ¤Çϸé, ĸÃÄ µÈ ÄÁÅÙÃ÷°¡
Ç÷¹À̽ºÈ¦´õ³»ÀÇ ÇöÀçÀÇ ÄÁÅÙÃ÷ÀÇ ¸»¹Ì¿¡ Ãß°¡µË´Ï´Ù.
SET
ÀÇ °æ¿ì´Â,
ĸÃÄ µÈ ÄÁÅÙÃ÷¸¦ ±×°Í ´Üü·Î Ç÷¹À̽ºÈ¦´õÀÇ °ªÀ¸·Î ÇØ¼ »ç¿ëÇÕ´Ï´Ù
(±×¶§±îÁö µî·ÏµÇ¾î ÀÖ´ø ÄÁÅÙÃ÷¸¦ µ¡¾²±âÇÕ´Ï´Ù).
µðÆúÆ®ÀÇ $type
ÇÏ
APPEND
ÀÔ´Ï´Ù.
$key
¿¡´Â, ÄÁÅÙÃ÷ÀÇ Ä¸ÃÄ ¾ÕÀ¸·Î¼
Ç÷¹À̽ºÈ¦´õÀÇ ÄÁÅ×À̳ÊÀÇ Æ¯Á¤ÀÇ Å°¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
captureStart()
(Àº)´Â,
captureEnd()
ÇÏÁö¸¸ ÄÝ µÉ ¶§±îÁö ´Ù¸¥ ĸÃĸ¦ Àá±Þ´Ï´Ù.
µ¿ÀÏÇÑ Ç÷¹À̽ºÈ¦´õ ÄÁÅ×À̳ʷΠĸÃĸ¦ ³×½ºÆ® ÇÒ ¼ö ¾ø½À´Ï´Ù.
ÇÏ·Á°í ÇÏ¸é ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù.
captureEnd()
(Àº)´Â,
ÄÁÅÙÃ÷ÀÇ Ä¸Ãĸ¦ Á¾·áÇϰí,
captureStart()
ÇÏÁö¸¸ ÄÝ µÇ¾úÀ» ¶§ÀÇ ÁöÁ¤¿¡ µû¶ó ±×°ÍÀ» ÄÁÅ×À̳ʿ¡ °Ý³³ÇÕ´Ï´Ù.
<!-- µðÆúÆ®ÀÇ Ä¸ÃÄ´Â µ¡ºÙ¿© ¾¸ ¸ðµåÀÔ´Ï´Ù -->
<?php $this->placeholder('foo')->captureStart()
foreach ($this->data as $datum): ?>
<div class="foo">
<h2><?= $datum->title ?></h2>
<p><?= $datum->content ?></p>
</div>
<?php $this->placeholder('foo')->captureEnd() ?>
<?php echo $this->placeholder('foo') ?>
<!-- ƯÁ¤ÀÇ Å°¿¡ ĸÃÄ ÇÕ´Ï´Ù -->
<?php $this->placeholder('foo')->captureStart('SET', 'data')
foreach ($this->data as $datum): ?>
<div class="foo">
<h2><?= $datum->title ?></h2>
<p><?= $datum->content ?></p>
</div>
<?php $this->placeholder('foo')->captureEnd() ?>
<?php echo $this->placeholder('foo')->data ?>
Zend Framework ¿¡´Â,"±¸Ã¼ÀûÀÎ" Ç÷¹À̽ºÈ¦´õÀÇ ½ÇÀåÀÌ Ç¥ÁØÀ¸·Î ¸î°³Àΰ¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. À̰͵éÀº ¸ðµÎ ÀϹÝÀûÀ¸·Î ÀÌ¿ëµÇ´Â °ÍÀ¸·Î,doctype (ÀÌ)³ª ÆäÀÌÁöÀÇ Å¸ÀÌÆ²,<head> ÀÇ ¿ä¼Ò±ºµîÀ» Ãë±ÞÇÕ´Ï´Ù. ¾î´À Ç÷¹À̽ºÈ¦´õ¿¡ ´ëÇØ¼µµ, Àμö ¾øÀÌ ÄÝ ÇÏ¸é ±× ¿ä¼Ò ÀÚ½ÅÀ» µ¹·ÁÁÝ´Ï´Ù.
°¢ ¿ä¼ÒÀÇ ¹®¼´Â, ÀÌÇÏÀÇ ¸µÅ©Ã³¿¡¼ °³º°ÀûÀ¸·Î Ãë±ÞÇÕ´Ï´Ù.
¿Ã¹Ù¸¥ Çü½ÄÀÇ HTML ¹®¼ ¹× XHTML ¹®¼¿¡´Â,
DOCTYPE
¼±¾ðÀÌ ÇÊ¿äÇÕ´Ï´Ù.
±â¾ïÇØ µÎ´Â °ÍÀÌ ¾î·Æ´Ù°í ÇÏ´Â °Í ¸¸ÀÌ ¾Æ´Ï°í,
À̰͵éÀº ƯÁ¤ÀÇ ¿ä¼ÒÀÇ ·»´õ¸µ ¹æ¹ý
(¿¹¸¦ µé¾î,<script>
(ÀÌ)³ª
<style>
¿ä¼Ò¿¡ ÀÖ¾î¼ÀÇ CDATA
ÀÇ À̽ºÄÉÀÌÇÁ ¹æ¹ý) ¿¡ ¿µÇâÀ» ÁÝ´Ï´Ù.
Doctype
ÇïÆÛ´Â, ÀÌÇÏÀÇ ¸î°³ÀÇ Çü½ÄÀ» ÁöÁ¤ÇÕ´Ï´Ù.
XHTML1_STRICT
XHTML1_TRANSITIONAL
XHTML1_FRAMESET
HTML4_STRICT
HTML4_LOOSE
HTML4_FRAMESET
Á¤Çü½ÄÀÎ ¹°°ÇÀ̸é, µ¶ÀÚÀûÀÎ doctype (À»)¸¦ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Doctype
ÇïÆÛ´Â,
Placeholder
ÇïÆÛ ÀÇ ±¸»ó ½ÇÀåÀÔ´Ï´Ù.
·Ê 41.8. Doctype ÇïÆÛÀÇ ±âº»ÀûÀÎ »ç¿ë¹ý
doctype (Àº)´Â, ¾ðÁ¦¶óµµ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª, °¡Àå ½ÉÇÃÇÑ »ç¿ë¹ýÀº, ·¹À̾ƿô ½ºÅ©¸³Æ®ÀÇ ¼±µÎ¿¡¼ ÁöÁ¤°ú Ãâ·ÂÀ» µ¿½Ã¿¡ ½Ç½ÃÇϰÚÁö¿ä.
<?= $this->doctype('XHTML1_STRICT') ?>
ÀÌ ÀÌÈÄ,doctype ¿¡ ÀÇÁ¸ÇÏ´Â ÀÓÀÇÀÇ ÇïÆÛ´Â doctype (À»)¸¦ °í·ÁÇÑ Ãâ·ÂÀ» ½Ç½ÃÇÏ°Ô µË´Ï´Ù. ¶Ç doctype ÇÏÁö¸¸ ¹®¼·Î ÁöÁ¤µÇ°Ô µË´Ï´Ù.
·Ê 41.9. Doctype ÀÇ Ãëµæ
´ÙÀ½¿¡ doctype (À»)¸¦ ¾Ë°í ½Í¾îÁö¸é, ¿ÀºêÁ§Æ®ÀÇ
getDoctype()
(À»)¸¦ ÄÝ ÇÕ´Ï´Ù.
ÀÌ ¿ÀºêÁ§Æ®´Â, ÇïÆÛ¸¦ ±âµ¿ÇßÀ» ¶§¿¡ ÃëµæÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù.
invoking the helper.
<?php
$doctype = $view->doctype()->getDoctype();
?>
ÀϹÝÀûÀÎ »ç¿ë¹ýÀ¸·Î¼´Â,doctype ÇÏÁö¸¸ XHTML
Áö ¾Æ´ÑÁö¸¦ Á¶»çÇÏ´Â °ÍÀÌ ÀÖ½À´Ï´Ù.±×°Í¿ëÀÇ ¸Þ¼Òµå·Î¼´Â
isXhtml()
ÇÏÁö¸¸ ÀÖ½À´Ï´Ù.
<?php
if ($view->doctype()->isXhtml()) {
// ¹«¾ùÀΰ¡¸¦ ÇÕ´Ï´Ù
}
?>
HTML ÀÇ <link>
¿ä¼Ò´Â º¹¼ö »ç¿ëÇÒ ¼ö ÀÖ¾î
½ºÅ¸ÀÏ ½ÃÆ®³ª Çǵå,favicon, Æ®·° ¹é
µîÀÌ ´Ù¾çÇÑ ÀÚ¿ø¿¡ÀÇ ¸µÅ©¸¦ ³ªÅ¸³À´Ï´Ù.
HeadTitle
ÇïÆÛ´Â,
½ÉÇÃÇÑ ÀÎÅÍÆäÀ̽º·Î ÀÌ·¯ÇÑ ¿ä¼Ò¸¦ ÀÛ¼ºÇØ,
´ÙÀ½¿¡ ±×°ÍÀ» ÃëµæÇØ ·¹À̾ƿô ½ºÅ©¸³Æ®·Î Ãâ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.
HeadLink
ÇïÆÛ¿¡°Ô´Â,
½ºÅ¸ÀÏ ½ÃÆ®¿¡ÀÇ ¸µÅ©¸¦ ½ºÅÿ¡ Ãß°¡ÇÏ´Â ¸Þ¼Òµå°¡ ÀÖ½À´Ï´Ù.
appendStylesheet($href, $media,
$conditionalStylesheet)
offsetSetStylesheet($index, $href, $media,
$conditionalStylesheet)
prependStylesheet($href, $media,
$conditionalStylesheet)
setStylesheet($href, $media,
$conditionalStylesheet)
$media
ÀÇ µðÆúÆ®´Â 'screen' ±×·¸Áö¸¸,
À¯È¿ÇÑ media Çü½ÄÀ̶ó¸é ¹«¾ùÀÌ¶óµµ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
$conditionalStylesheet
ÇÏ boolean °ªÀ¸·Î,
·»´õ¸µ½Ã¿¡ »ç¿ëÇÕ´Ï´Ù.
ƯÁ¤ÀÇ Ç÷§Æû¿¡¼ ½ºÅ¸ÀÏ ½ÃÆ®ÀÇ Àб⸦ ±×¸¸µÎ°í ½ÍÀº °æ¿ì µî¿¡,
Ưº°ÇÑ ÄÚ¸àÆ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
°Ô´Ù°¡HeadLink
ÇïÆÛ¿¡°Ô´Â, ½ºÅÿ¡ 'alternate' ¸µÅ©¸¦ Ãß°¡ÇÏ´Â ¸Þ¼Òµåµµ ÀÖ½À´Ï´Ù.
appendAlternate($href, $type,
$title)
offsetSetAlternate($index, $href, $type,
$title)
prependAlternate($href, $type,
$title)
setAlternate($href, $type,
$title)
headLink()
ÇïÆÛ ¸Þ¼Òµå´Â,
<link>
¿ä¼Ò¿¡ ÇÊ¿äÇÑ ¸ðµç ¼Ó¼ºÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ¾î
±× À§Ä¡µµ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¾î, »õ·Î¿î ¿ä¼Ò°¡ Áö±Ý±îÁöÀÇ °ÍÀ» µ¡¾²±âÇÏ´Â,
ȤÀº ½ºÅÃÀÇ ¼±µÎ¿¡ Ãß°¡ÇÏ´Â, ½ºÅÃÀÇ ¸»¹Ì¿¡ Ãß°¡ÇÏ´Â µîÀ» ÁöÁ¤ÇÕ´Ï´Ù.
HeadLink
ÇïÆÛ´Â,
Placeholder
ÇïÆÛ ÀÇ ±¸»ó ½ÇÀåÀÔ´Ï´Ù.
·Ê 41.10. HeadLink ÇïÆÛÀÇ ±âº»ÀûÀÎ »ç¿ë¹ý
headLink
(Àº)´Â, ¾ðÁ¦¶óµµ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀϹÝÀûÀ¸·Î´Â, ±Û·Î¹úÀÎ ¸µÅ©´Â ·¹À̾ƿô ½ºÅ©¸³Æ®·Î ÁöÁ¤Çϰí,
¾îÇø®ÄÉÀÌ¼Ç °íÀ¯ÀÇ ¸µÅ©´Â ¾îÇø®ÄÉÀ̼ÇÀÇ ºä½ºÅ©¸³Æ®·Î ÁöÁ¤ÇÏ°Ô µË´Ï´Ù.
·¹À̾ƿô ½ºÅ©¸³Æ®¿¡¼´Â,<head>
¼½¼Ç Áß(¾È)¿¡¼ ÇïÆÛ¸¦ Ãâ·ÂÇÏ°Ô µË´Ï´Ù.
<?php // ºä½ºÅ©¸³Æ®ÀÇ ¸µÅ©¸¦ ¼³Á¤ÇÕ´Ï´Ù
$this->headLink()->appendStylesheet('/styles/basic.css')
->headLink(array('rel' => 'favicon', 'href' => '/img/favicon.ico'), 'PREPEND')
->prependStylesheet('/styles/moz.css', 'screen', true);
?>
<?php // ¸µÅ©¸¦ ·»´õ¸µ ÇÕ´Ï´Ù ?>
<?= $this->headLink() ?>
HTML ÀÇ <meta>
¿ä¼Ò´Â,
HTML ¹®¼¿¡ °üÇÑ ¸ÞŸ Á¤º¸¸¦ Ãë±ÞÇÕ´Ï´Ù.
¿¹¸¦ µé¾î Ű¿öµå³ª ij¸¯ÅÍ ¼¼Æ®, ij½¬ ¹æ½Ä µîÀÔ´Ï´Ù.
Meta ű׿¡´Â 'http-equiv' Çü½Ä°ú 'name' Çü½ÄÀÌ ÀÖ¾î,
'content' ¼Ó¼ºÀÌ Çʼö°¡ µË´Ï´Ù.¶Ç,
'lang' ȤÀº 'scheme' ÀÇ ¸î°³ÀÇ ¼Ó¼ºÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.
HeadMeta
ÇïÆÛ´Â,
meta ű׸¦ ¼³Á¤Çϰųª Ãß°¡ÇϰųªÇϱâ À§ÇÑ ´ÙÀ½°ú °°Àº ¸Þ¼Òµå¸¦ Á¦°øÇÕ´Ï´Ù.
appendName($keyValue, $content,
$conditionalName)
offsetSetName($index, $keyValue, $content,
$conditionalName)
prependName($keyValue, $content,
$conditionalName)
setName($keyValue, $content,
$modifiers)
appendHttpEquiv($keyValue, $content,
$conditionalHttpEquiv)
offsetSetHttpEquiv($index, $keyValue, $content,
$conditionalHttpEquiv)
prependHttpEquiv($keyValue, $content,
$conditionalHttpEquiv)
setHttpEquiv($keyValue, $content,
$modifiers)
$keyValue
ÇÏ 'name' ȤÀº 'http-equiv'
ŰÀÇ °ªÀ» Á¤ÀÇÇÕ´Ï´Ù.$content
ÇÏ
'content' ŰÀÇ °ªÀ» Á¤ÀÇÇØ,$modifiers
(Àº)´Â ¿É¼ÇÀ¸·Î ¿¬»ó ¹è¿À» ÁöÁ¤ÇÕ´Ï´Ù.ÀÌ ¹è¿¿¡´Â
'lang' (ÀÌ)³ª 'scheme' ±×·¸´Ù°í Çϴ Ű°¡ Æ÷ÇԵ˴ϴÙ.
ÇïÆÛ ¸Þ¼Òµå headMeta()
±×¸®°í meta ű׸¦ ¼³Á¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
ÀÌ ¸Þ¼ÒµåÀÇ ¼¸íÀº headMeta($content,
$keyValue, $keyType = 'name', $modifiers = array(), $placement =
'APPEND')
ÀÔ´Ï´Ù.$keyValue
¿¡´Â,
$keyType
('name' ȤÀº 'http-equiv')
±×¸®°í ÁöÁ¤ÇÑ Å°ÀÇ ÄÁÅÙÃ÷¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
$placement
ÇÏ 'SET' (±âÁ¸ÀÇ °ªÀ» ¸ðµÎ µ¡¾²±âÇÑ´Ù)
Àΰ¡ 'APPEND' (½ºÅÃÀÇ ¸¶Áö¸·¿¡ Ãß°¡ÇÑ´Ù),
ȤÀº 'PREPEND' (½ºÅÃÀÇ ¼±µÎ¿¡ Ãß°¡ÇÑ´Ù) µË´Ï´Ù.
HeadMeta
ÇÏ append()
(ÀÌ)³ª
offsetSet()
,prepend()
, ±×¸®°í set()
(À»)¸¦ °¢°¢ ¿À¹ö¶óÀ̵å(override) Çϰí, À§¿¡ ¿Ã¸° Ưº°ÇÑ ¸Þ¼Òµå¸¦ »ç¿ë½Ã۵µ·Ï(µíÀÌ) ÇÕ´Ï´Ù.
³»ºÎÀûÀ¸·Î´Â, °¢ Ç׸ñÀ» stdClass
ÀÇ ÅäÅ«À¸·Î¼ º¸°üÇØ,
³ªÁß¿¡ itemToString()
¸Þ¼Òµå·Î ½Ã¸®¾ó¶óÀÌÁî ÇÕ´Ï´Ù.
À̰ÍÀº ½ºÅó»ÀÇ Ç׸ñ¿¡ ´ëÇϰí üũ¸¦ ½Ç½ÃÇØ,
¿É¼ÇÀ¸·Î ±×°ÍÀ» ¼öÁ¤ÇÑ °ÍÀ» µ¹·ÁÁÝ´Ï´Ù.
HeadMeta
ÇïÆÛ´Â,
Placeholder
ÇïÆÛ ÀÇ ±¸»ó ½ÇÀåÀÔ´Ï´Ù.
·Ê 41.11. HeadMeta ÇïÆÛÀÇ ±âº»ÀûÀÎ »ç¿ë¹ý
meta ű״Â, ¾ðÁ¦¶óµµ ÁÁ¾ÆÇÏ´Â ¶§·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î´Â, Ŭ¶óÀ̾ðÆ®Ãø¿¡¼ÀÇ Ä³½¬ÀÇ Á¦¾î ¹æ¹ýÀ̳ª SEO ¿ëŰ¿öµåµîÀ» ÁöÁ¤ÇÕ´Ï´Ù.
¿¹¸¦ µé¾î,SEO ¿ë¹«ÀÇ Å°¿öµå¸¦ ÁöÁ¤ÇÏ°í ½ÍÀº °æ¿ì´Â 'keywords' (ÀÌ)¶ó´Â À̸§ÀÇ meta ű׸¦ ÀÛ¼ºÇÕ´Ï´Ù. ±×¸®°í, ±× ÆäÀÌÁö¿¡ °ü·ÃÇϴ Ű¿öµå¸¦ °ªÀ¸·Î ÇØ¼ ÁöÁ¤ÇÕ´Ï´Ù.
<?php // meta ű׷ΠŰ¿öµå¸¦ ÁöÁ¤ÇÕ´Ï´Ù
$this->headMeta()->appendName('keywords', 'framework php productivity');
?>
Ŭ¶óÀ̾ðÆ®Ãø¿¡¼ÀÇ Ä³½¬ÀÇ Á¦¾î ¹æ¹ýÀ» ÁöÁ¤ÇÏ°í ½ÍÀº °æ¿ì´Â, http-equiv ű׸¦ ¼³Á¤ÇØ ·êÀ» ÁöÁ¤ÇÕ´Ï´Ù.
<?php // Ŭ¶óÀ̾ðÆ®Ãø¿¡¼ÀÇ Ä³½¬¸¦ ¹«È¿·Î ÇÕ´Ï´Ù
$this->headMeta()->appendHttpEquiv('expires', 'Wed, 26 Feb 1997 08:21:57 GMT')
->appendHttpEquiv('pragma', 'no-cache')
->appendHttpEquiv('Cache-Control', 'no-cache');
?>
meta ű×ÀÇ »ç¿ë¹ýÀ¸·Î¼ ¶Ç Çϳª ÀÚÁÖ ÀÖ´Â °ÍÀº, ÄÁÅÙÃ÷ ŸÀÔÀ̳ª ij¸¯ÅÍ ¼¼Æ®, ¾ð¾î¸¦ ÁöÁ¤ÇÏ´Â °ÍÀÔ´Ï´Ù.
<?php // ÄÁÅÙÃ÷ ŸÀÔ°ú ij¸¯ÅÍ ¼¼Æ®¸¦ ¼³Á¤ÇÕ´Ï´Ù
$this->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=UTF-8')
->appendHttpEquiv('Content-Language', 'en-US');
?>
¸¶Áö¸· ¿¹·Î¼ ¸®µð·ºÆ®ÀÇ Àü¿¡ º¸ÀÌ´Â ¸Þ¼¼Áö¸¦ "meta refresh" ±×¸®°í ÁöÁ¤ÇÏ´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù.
<?php // 3 ÃÊ ÈÄ¿¡ »õ·Ó´Ù URL ¿¡ À̵¿½Ãŵ´Ï´Ù
$this->headMeta()->appendHttpEquiv('Refresh', '3;URL=http://www.some.org/some.html');
?>
·¹À̾ƿô³»¿¡¼ meta ű׸¦ ÁöÁ¤ ³¡¸¶Ä¡¸é, ÇïÆÛÀÇ ³»¿ëÀ» Ãâ·ÂÇÕ´Ï´Ù.
<?= $this->headMeta() ?>
HTML ÀÇ <script>
¿ä¼Ò¸¦ »ç¿ëÇϰí,
Ŭ¶óÀÌ¾ðÆ® »çÀÌÆ®ÀÇ ½ºÅ©¸³Æ®¸¦ ÀÎ ¶óÀÎÀ¸·Î ÁöÁ¤Çϰųª
¿ÜºÎÀÇ ÀÚ¿øÀ¸·ÎºÎÅÍ ½ºÅ©¸³Æ®ÀÇ Äڵ带 ÀоîµéÀ̰ųª ÇÕ´Ï´Ù.
HeadScript
ÇïÆÛ´Â, ÀÌ ¾çÂÊ ¸ðµÎÀÇ ¹æ½ÄÀ¸·Î ´ëÀÀÇϰí ÀÖ½À´Ï´Ù.
HeadScript
ÇïÆÛ´Â,
ÀÌÇÏÀÇ ¸Þ¼Òµå±º¿¡ ÀÇÇØ¼ ½ºÅ©¸³Æ®ÀÇ ¼³Á¤À̳ª Ãß°¡¸¦ ¼Æ÷Æ®ÇÕ´Ï´Ù.
appendFile($src, $type = 'text/javascript',
$attrs = array())
offsetSetFile($index, $src, $type = 'text/javascript',
$attrs = array())
prependFile($src, $type = 'text/javascript',
$attrs = array())
setFile($src, $type = 'text/javascript',
$attrs = array())
appendScript($script, $type = 'text/javascript',
$attrs = array())
offsetSetScript($index, $script, $type = 'text/javascript',
$attrs = array())
prependScript($script, $type = 'text/javascript',
$attrs = array())
setScript($script, $type = 'text/javascript',
$attrs = array())
*File()
°èÀÇ ¸Þ¼Òµå¿¡¼´Â,$src
(Àº)´Â ÀоîµéÀÌ°í ½ÍÀº ¸®¸ðÆ® ½ºÅ©¸³Æ®ÀÇ Àå¼Ò°¡ µË´Ï´Ù.
Åë»óÀº,URL ȤÀº ÆÐ½ºÀÇ Çü½ÄÀÌ µË´Ï´Ù.*Script()
°èÀÇ ¸Þ¼Òµå¿¡¼´Â,$script
(Àº)´Â ±× ¿ä¼Ò¿¡ »ç¿ëÇÏ°í ½ÍÀº Ŭ¶óÀ̾ðÆ®ÃøÀÇ ½ºÅ©¸³Æ®°¡ µË´Ï´Ù.
HeadScript
(Àº)´Â ½ºÅ©¸³Æ®ÀÇ Ä¸Ãĵµ ½Ç½ÃÇÕ´Ï´Ù.
À̰ÍÀº, Ŭ¶óÀ̾ðÆ®Ãø ½ºÅ©¸³Æ®¸¦ ÇÁ·Î±×·¥»ó¿¡¼ ÀÛ¼ºÇÏ°í ³ª¼
¾îµò°¡ ´Ù¸¥ Àå¼Ò¿¡¼ »ç¿ëÇÏ°í ½ÍÀº °æ¿ì¿¡ Æí¸®ÇÕ´Ï´Ù.
»ç¿ë¹ýÀº, ÀÌÇÏÀÇ ¿¹·Î ³ªÅ¸³» º¸ÀÔ´Ï´Ù.
headScript()
¸Þ¼Òµå¸¦ »ç¿ëÇϸé,
½ºÅ©¸³Æ® ¿ä¼Ò¸¦ ¹ÎøÇÏ°Ô Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¼¸íÀº
headScript($mode = 'FILE', $spec, $placement = 'APPEND')
ÀÔ´Ï´Ù.$mode
ÇÏ 'FILE' ȤÀº 'SCRIPT' ÀÇ ¾î´ÀÂÊÀ̵çÀ¸·Î,
½ºÅ©¸³Æ®¿¡ÀÇ ¸µÅ©¸¦ ÁöÁ¤ÇÏ´ÂÁö ½ºÅ©¸³Æ® ÀÚü¸¦ Á¤ÀÇÇÏ´ÂÁö¿¡ ÀÇÇØ¼ ¹Ù²ß´Ï´Ù.
$spec
(Àº)´Â, ¸µÅ©ÇÏ´Â ½ºÅ©¸³Æ® ÆÄÀÏ È¤Àº ½ºÅ©¸³Æ®ÀÇ ¼Ò½º°¡ µË´Ï´Ù.
$placement
ÇÏ 'APPEND','PREPEND' ȤÀº 'SET'
ÀÇ ¾ðÁ¨°¡°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù.
HeadScript
ÇÏ append()
(ÀÌ)³ª
offsetSet()
,prepend()
, ±×¸®°í set()
(À»)¸¦ °¢°¢ ¿À¹ö¶óÀ̵å(override) Çϰí, À§¿¡ ¿Ã¸° Ưº°ÇÑ ¸Þ¼Òµå¸¦ »ç¿ë½Ã۵µ·Ï(µíÀÌ) ÇÕ´Ï´Ù.
³»ºÎÀûÀ¸·Î´Â, °¢ Ç׸ñÀ» stdClass
ÀÇ ÅäÅ«À¸·Î¼ º¸°üÇØ,
³ªÁß¿¡ itemToString()
¸Þ¼Òµå·Î ½Ã¸®¾ó¶óÀÌÁî ÇÕ´Ï´Ù.
À̰ÍÀº ½ºÅó»ÀÇ Ç׸ñ¿¡ ´ëÇϰí üũ¸¦ ½Ç½ÃÇØ,
¿É¼ÇÀ¸·Î ±×°ÍÀ» ¼öÁ¤ÇÑ °ÍÀ» µ¹·ÁÁÝ´Ï´Ù.
HeadScript
ÇïÆÛ´Â,
Placeholder
ÇïÆÛ ÀÇ ±¸»ó ½ÇÀåÀÔ´Ï´Ù.
![]() |
HTML Body ½ºÅ©¸³Æ®·ÎÀÇ InlineScript ÀÇ »ç¿ë |
---|---|
HTML ÀÇ |
![]() |
¸ðµç ¼Ó¼ºÀº µðÆúÆ®·Î ¹«È¿ |
---|---|
µðÆúÆ®¿¡¼´Â,
|
·Ê 41.12. HeadScript ÇïÆÛÀÇ ±âº»ÀûÀÎ »ç¿ë¹ý
À§¿¡¼ ¼³¸íÇÑ °Íó·³, »õ·Ó´Ù script ű׸¦, ÁÁ¾ÆÇÏ´Â ¶§·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿ÜºÎÀÇ ÀÚ¿ø¿¡ÀÇ ¸µÅ©µµ °¡´ÉÇϰí, ½ºÅ©¸³Æ® ÀÚü¸¦ ÁöÁ¤ÇÏ´Â °Íµµ °¡´ÉÇÕ´Ï´Ù.
<?php // ½ºÅ©¸³Æ®¸¦ Ãß°¡ÇÕ´Ï´Ù
$this->headScript()->appendFile('/js/prototype.js')
->appendScript($onloadScript);
?>
Ŭ¶óÀ̾ðÆ®ÃøÀÇ ½ºÅ©¸³Æ®¿¡¼´Â ÁÙ¼ ¼ø¼°¡ Áß¿äÇØÁý´Ï´Ù. ÁöÁ¤ÇÑ ÁÙ ¼ø¼·Î Ãâ·Â½Ãų Çʿ䰡 ³ª¿À°ÚÁö¿ä. ±× ¶§¹®¿¡(À§ÇØ) »ç¿ëÇÏ´Â °ÍÀÌ,append,prepend ±×¸®°í offsetSet ±×·¸´Ù°í ÇÏ´Â Áö½Ã¹®ÀÔ´Ï´Ù.
<?php // ½ºÅ©¸³Æ®ÀÇ Â÷·Ê¸¦ ÁöÁ¤ÇÕ´Ï´Ù
// ƯÁ¤ÀÇ À§Ä¡¸¦ ÁöÁ¤ÇØ, È®½ÇÈ÷ ¸¶Áö¸·¿¡ ÀÐÈ÷µµ·Ï(µíÀÌ) ÇÕ´Ï´Ù
$this->headScript()->offsetSetScript(100, '/js/myfuncs.js');
// scriptaculous ÀÇ È¿°ú¸¦ »ç¿ëÇÕ´Ï´Ù (´ÙÀ½ÀÇ À妽ºÀÌ´Ù 101 ¿¡ Ãß°¡µË´Ï´Ù)
$this->headScript()->appendScript('/js/scriptaculous.js');
// ±×·¸Áö¸¸, ±Ù¿øÀÌ µÈ´Ù prototype ½ºÅ©¸³Æ®´Â Ç×»ó ÃÖÃÊ·Î ÀÐÈ÷µµ·Ï(µíÀÌ) ÇÕ´Ï´Ù
$this->headScript()->prependScript('/js/prototype.js');
?>
¸ðµç ½ºÅ©¸³Æ®¸¦ Ãâ·ÂÇÒ Áغñ°¡ °®Ãß¾îÁö¸é, ±×¸®°í´Â ·¹À̾ƿô ½ºÅ©¸³Æ®·Î ±×°ÍÀ» Ãâ·ÂÇÒ »ÓÀÔ´Ï´Ù.
<?= $this->headScript() ?>
·Ê 41.13. HeadScript ÇïÆÛ¿¡ ÀÇÇÑ ½ºÅ©¸³Æ®ÀÇ Ä¸ÃÄ
½Ã°£¿¡´Â Ŭ¶óÀ̾ðÆ®ÃøÀÇ ½ºÅ©¸³Æ®¸¦ ÇÁ·Î±×·¥À¸·Î »ý¼ºÇØ¾ß ÇÏ´Â °Íµµ ÀÖ°ÚÁö¿ä.
¹®ÀÚ¿ÀÇ ¿¬°áÀ̳ª È÷¾ÆµåÅ¥¸ÕÆ®µîÀ» »ç¿ëÇØµµ »ó°üÇÏÁö ¾Ê½À´Ï´Ù¸¸,
º¸Åë¿¡ ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇØ ±×°ÍÀ» PHP ÀÇ Å±׿¡ ¹¯À» ¼ö ÀÖÀ¸¸éº¸´Ù °£´ÜÇÕ´Ï´Ù.
HeadScript
(Àº)´Â, ½ºÅÿ¡ ĸÃÄ ÇÏ´Â °ÍÀ¸·Î À̰ÍÀ» ½ÇÇöÇÕ´Ï´Ù.
<?php $this->headScript()->captureStart() ?>
var action = '<?= $this->baseUrl ?>';
$('foo_form').action = action;
<?php $this->headScript()->captureEnd() ?>
ÀüÁ¦ Á¶°ÇÀº ´ÙÀ½°ú °°½À´Ï´Ù.
½ºÅ©¸³Æ®´Â, ½ºÅÃÀÇ ¸»¹Ì¿¡ Ãß°¡µÇ¾î¼ °©´Ï´Ù.
±âÁ¸ÀÇ ½ºÅÃÀ» µ¡¾²±âÇϰųª ½ºÅÃÀÇ ¼±µÎ¿¡ Ãß°¡Çϰųª ÇÏ°í ½ÍÀº °æ¿ì´Â,
°¢°¢ 'SET' ȤÀº 'PREPEND' (À»)¸¦
captureStart()
ÀÇ ÃÖÃÊÀÇ Àμö·Î¼ °Ç³×ÁÝ´Ï´Ù.
½ºÅ©¸³Æ®ÀÇ MIME ŸÀÔÀº 'text/javascript' (À»)¸¦ »óÁ¤Çϰí ÀÖ½À´Ï´Ù.
´Ù¸¥ °ÍÀ» ÁöÁ¤ÇÏ°í ½ÍÀº °æ¿ì´Â, ±×°ÍÀ»
captureStart()
ÀÇ 2 ¹øÂ°ÀÇ Àμö·Î¼ °Ç³×ÁÝ´Ï´Ù.
<script>
ű׿¡ Ãß°¡ÀÇ ¼Ó¼ºÀ» ÁöÁ¤ÇÏ°í ½ÍÀº °æ¿ì´Â,
captureStart()
ÀÇ 3 ¹øÂ°ÀÇ Àμö¿¡ ¹è¿ Çü½Ä¿¡¼ °Ç³×ÁÝ´Ï´Ù.
HTML ÀÇ <style>
¿ä¼Ò¸¦ »ç¿ëÇϰí,
CSS ½ºÅ¸ÀÏ ½ÃÆ®¸¦ HTML ÀÇ <head>
¿ä¼Ò¿¡ ¹¯½À´Ï´Ù.
![]() |
HeadLink (À»)¸¦ »ç¿ëÇß´Ù CSS ÆÄÀÏ¿¡ÀÇ ¸µÅ© |
---|---|
¿ÜºÎ ½ºÅ¸ÀÏ ½ÃÆ®ÀÇ Àбâ¿ëÀÇ
|
HeadStyle
ÇïÆÛ°¡ ¼Æ÷Æ®ÇÏ´Â ¸Þ¼Òµå´Â ´ÙÀ½°ú °°½À´Ï´Ù.
À̰͵鿡 ÀÇÇØ¼ ½ºÅ¸ÀÏ ½ÃÆ® ¼±¾ðÀÇ ¼³Á¤À̳ª Ãß°¡¸¦ ½Ç½ÃÇÕ´Ï´Ù.
appendStyle($content, $attributes =
array())
offsetSetStyle($index, $content, $attributes =
array())
prependStyle($content, $attributes =
array())
setStyle($content, $attributes =
array())
¸ðµç °æ¿ì¿¡ ´ëÇϰí,$content
¿¡´Â ½ÇÁ¦ÀÇ CSS ¼±¾ðÀ» ÁöÁ¤ÇÕ´Ï´Ù.
$attributes ¿¡´Â,style
ű׿¡ Ãß°¡ÇÏ°í ½ÍÀº ¼Ó¼ºÀÌ ÀÖÀ¸¸é ÁöÁ¤ÇÕ´Ï´Ù.
lang,title,media ±×¸®°í dir ÀÇ ¸ðµç °ÍÀÌ »ç¿ë °¡´ÉÇÕ´Ï´Ù.
HeadStyle
(Àº)´Â ½ºÅ¸ÀÏ ¼±¾ðÀÇ Ä¸Ãĵµ ½Ç½ÃÇÕ´Ï´Ù.
À̰ÍÀº, ¼±¾ðÀ» ÇÁ·Î±×·¥»ó¿¡¼ ÀÛ¼ºÇÏ°í ³ª¼ ¾îµò°¡ ´Ù¸¥ Àå¼Ò¿¡¼ »ç¿ëÇÏ°í ½ÍÀº °æ¿ì¿¡ Æí¸®ÇÕ´Ï´Ù.
»ç¿ë¹ýÀº, ÀÌÇÏÀÇ ¿¹·Î ³ªÅ¸³» º¸ÀÔ´Ï´Ù.
headStyle()
¸Þ¼Òµå¸¦ »ç¿ëÇϸé, ¼±¾ðÀÇ ¿ä¼Ò¸¦ ¹ÎøÇÏ°Ô Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¼¸íÀº
headStyle($content$placement = 'APPEND', $attributes = array())
ÀÔ´Ï´Ù.$placement
¿¡´Â 'APPEND','PREPEND' ȤÀº 'SET'
ÀÇ ¾î´ÀÂÊÀ̵çÀ» ÁöÁ¤ÇÕ´Ï´Ù.
HeadStyle
ÇÏ append()
(ÀÌ)³ª
offsetSet()
,prepend()
, ±×¸®°í set()
(À»)¸¦ °¢°¢ ¿À¹ö¶óÀ̵å(override) Çϰí, À§¿¡ ¿Ã¸° Ưº°ÇÑ ¸Þ¼Òµå¸¦ »ç¿ë½Ã۵µ·Ï(µíÀÌ) ÇÕ´Ï´Ù.
³»ºÎÀûÀ¸·Î´Â, °¢ Ç׸ñÀ» stdClass
ÀÇ ÅäÅ«À¸·Î¼ º¸°üÇØ,
³ªÁß¿¡ itemToString()
¸Þ¼Òµå·Î ½Ã¸®¾ó¶óÀÌÁî ÇÕ´Ï´Ù.
À̰ÍÀº ½ºÅó»ÀÇ Ç׸ñ¿¡ ´ëÇϰí üũ¸¦ ½Ç½ÃÇØ,
¿É¼ÇÀ¸·Î ±×°ÍÀ» ¼öÁ¤ÇÑ °ÍÀ» µ¹·ÁÁÝ´Ï´Ù.
HeadStyle
ÇïÆÛ´Â,
Placeholder
ÇïÆÛ ÀÇ ±¸»ó ½ÇÀåÀÔ´Ï´Ù.
·Ê 41.14. HeadStyle ÇïÆÛÀÇ ±âº»ÀûÀÎ »ç¿ë¹ý
»õ·Ó´Ù style ű׸¦, ÁÁ¾ÆÇÏ´Â ¶§·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
<?php // ½ºÅ©¸³Æ®¸¦ Ãß°¡ÇÕ´Ï´Ù
$this->headStyle()->appendStyle($styles);
?>
CSS ±×·³ ÁÙ ¼ø¼°¡ Áß¿äÇØÁý´Ï´Ù. ÁöÁ¤ÇÑ ÁÙ ¼ø¼·Î Ãâ·Â½Ãų Çʿ䰡 ³ª¿À°ÚÁö¿ä. ±× ¶§¹®¿¡(À§ÇØ) »ç¿ëÇÏ´Â °ÍÀÌ,append,prepend ±×¸®°í offsetSet ±×·¸´Ù°í ÇÏ´Â Áö½Ã¹®ÀÔ´Ï´Ù.
<?php // ½ºÅ¸ÀÏÀÇ Â÷·Ê¸¦ ÁöÁ¤ÇÕ´Ï´Ù
// ƯÁ¤ÀÇ À§Ä¡¿¡ µÓ´Ï´Ù
$this->headStyle()->offsetSetStyle(100, $customStyles);
// ¸¶Áö¸·¿¡ µÓ´Ï´Ù
$this->headStyle()->appendStyle($finalStyles);
// ¼±µÎ¿¡ µÓ´Ï´Ù
$this->headStyle()->prependStyle($firstStyles);
?>
¸ðµç ½ºÅ¸ÀÏ ¼±¾ðÀ» Ãâ·ÂÇÒ Áغñ°¡ °®Ãß¾îÁö¸é, ±×¸®°í´Â ·¹À̾ƿô ½ºÅ©¸³Æ®·Î ±×°ÍÀ» Ãâ·ÂÇÒ »ÓÀÔ´Ï´Ù.
<?= $this->headStyle() ?>
·Ê 41.15. HeadStyle ÇïÆÛ¿¡ ÀÇÇÑ ½ºÅ¸ÀÏ ¼±¾ðÀÇ Ä¸ÃÄ
½Ã°£¿¡´Â CSS ÀÇ ½ºÅ¸ÀÏ ¼±¾ðÀ» ÇÁ·Î±×·¥À¸·Î »ý¼ºÇØ¾ß ÇÏ´Â °Íµµ ÀÖ°ÚÁö¿ä.
¹®ÀÚ¿ÀÇ ¿¬°áÀ̳ª È÷¾ÆµåÅ¥¸ÕÆ®µîÀ» »ç¿ëÇØµµ »ó°üÇÏÁö ¾Ê½À´Ï´Ù¸¸,
º¸Åë¿¡ ½ºÅ¸ÀÏÀ» ÀÛ¼ºÇØ ±×°ÍÀ» PHP ÀÇ Å±׿¡ ¹¯À» ¼ö ÀÖÀ¸¸éº¸´Ù °£´ÜÇÕ´Ï´Ù.
HeadStyle
(Àº)´Â, ½ºÅÿ¡ ĸÃÄ ÇÏ´Â °ÍÀ¸·Î À̰ÍÀ» ½ÇÇöÇÕ´Ï´Ù.
<?php $this->headStyle()->captureStart() ?>
body {
background-color: <?= $this->bgColor ?>;
}
<?php $this->headStyle()->captureEnd() ?>
ÀüÁ¦ Á¶°ÇÀº ´ÙÀ½°ú °°½À´Ï´Ù.
½ºÅ¸ÀÏ ¼±¾ðÀº, ½ºÅÃÀÇ ¸»¹Ì¿¡ Ãß°¡µÇ¾î¼ °©´Ï´Ù.
±âÁ¸ÀÇ ½ºÅÃÀ» µ¡¾²±âÇϰųª ½ºÅÃÀÇ ¼±µÎ¿¡ Ãß°¡Çϰųª ÇÏ°í ½ÍÀº °æ¿ì´Â,
°¢°¢ 'SET' ȤÀº 'PREPEND' (À»)¸¦
captureStart()
ÀÇ ÃÖÃÊÀÇ Àμö·Î¼ °Ç³×ÁÝ´Ï´Ù.
<style>
ű׿¡ Ãß°¡ÀÇ ¼Ó¼ºÀ» ÁöÁ¤ÇÏ°í ½ÍÀº °æ¿ì´Â,
captureStart()
ÀÇ 3 ¹øÂ°ÀÇ Àμö¿¡ ¹è¿ Çü½Ä¿¡¼ °Ç³×ÁÝ´Ï´Ù.
HTML ÀÇ <title>
¿ä¼Ò¸¦ »ç¿ëÇϰí,
HTML ¹®¼ÀÇ Å¸ÀÌÆ²À» ¼³Á¤ÇÕ´Ï´Ù.
HeadTitle
ÇïÆÛ´Â,
ÇÁ·Î±×·¥»ó¿¡¼ ÀÛ¼ºÇÑ Å¸ÀÌÆ²À» º¸Á¸ÇØ µÎ°í,
´ÙÀ½¿¡ Ãâ·Â ½Ã¿¡ ±×°ÍÀ» ÃëµæÇϱâ À§ÇÑÀÇ °ÍÀÔ´Ï´Ù.
HeadTitle
ÇïÆÛ´Â,
Placeholder
ÇïÆÛ ÀÇ ±¸»ó ½ÇÀåÀÔ´Ï´Ù.
toString()
¸Þ¼Òµå¸¦ ¿À¹ö¶óÀ̵å(override) ÇØ
<title>
¿ä¼Ò¸¦ »ý¼ºÇϵµ·Ï(µíÀÌ) Çϰí ÀÖ¾î,
headTitle()
¸Þ¼Òµå¿¡ ÀÇÇØ¼ title
¿ä¼ÒÀÇ ¼³Á¤À̳ª Áý¾àÀ» °£´ÜÇÏ°Ô ÇÒ ¼ö ÀÖ°Ô µÇ¾î ÀÖ½À´Ï´Ù.
ÀÌ ¸Þ¼ÒµåÀÇ ¼¸íÀº
headTitle($title, $setType = 'APPEND')
ÀÔ´Ï´Ù.µðÆúÆ®¿¡¼´Â, °ªÀº ½ºÅà (title ºÎÀÇ ³»¿ëÀ» Áý¾àÇÑ °Í)
ÀÇ ¸¶Áö¸·¿¡ Ãß°¡µË´Ï´Ù.±×·¯³ª À̰ÍÀ» 'PREPEND' (½ºÅÃÀÇ ¼±µÎ¿¡ Ãß°¡ÇÑ´Ù)
(ÀÌ)³ª 'SET' (½ºÅà Àüü¸¦ µ¡¾²±âÇÑ´Ù) (À¸)·Î ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
·Ê 41.16. HeadTitle ÇïÆÛÀÇ ±âº»ÀûÀÎ »ç¿ë¹ý
title ű״Â, ¾ðÁ¦¶óµµ ÁÁ¾ÆÇÏ´Â ¶§·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀϹÝÀûÀÎ »ç¿ë¹ýÀ¸·Î¼´Â, ¾îÇø®ÄÉÀ̼dz»¿¡¼ÀÇ °èÃþ, Áï »çÀÌÆ®, ÄÜÆ®·Ñ·¯, ¾×¼Ç ±× ¿ÜÀÇ ÀÚ¿ø¿¡ ´ëÇÑ Á¤º¸¸¦ ³ªÅ¸³»´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.
<?php
// ÄÜÆ®·Ñ·¯¿Í ¾×¼ÇÀÇ À̸§À» title ºÎ·Î ¼³Á¤ÇÕ´Ï´Ù
$request = Zend_Controller_Front::getInstance()->getRequest();
$this->headTitle($request->getActionName())
->headTitle($request->getControllerName());
// »çÀÌÆ®¸íÀ» title (À¸)·Î ¼³Á¤ÇÕ´Ï´Ù.À̰ÍÀº ·¹À̾ƿô ½ºÅ©¸³Æ®·Î ½Ç½ÃÇÏ°Ô µÇ°ÚÁö¿ä
$this->headTitle('Zend Framework');
// °¢ ºÎºÐÀ» ´Ü¶ôÁþ´Â ¹®ÀÚ¿À» ¼³Á¤ÇÕ´Ï´Ù
$this->headTitle()->setSeparator(' / ');
?>
¸¶Áö¸·À¸·Î, ·¹À̾ƿô ½ºÅ©¸³Æ®³»¿¡¼ ŸÀÌÆ²À» ·»´õ¸µ ÇÒ ¶§¿¡ ±×°ÍÀ» Ãâ·ÂÇÒ »ÓÀÔ´Ï´Ù.
<!-- <¾×¼Ç¸í> / <ÄÜÆ®·Ñ·¯¸í> / Zend Framework (¿Í)°ú Ãâ·ÂµË´Ï´Ù -->
<?= $this->headTitle() ?>
HTML ÀÇ <script>
¿ä¼Ò¸¦ »ç¿ëÇϰí,
Ŭ¶óÀÌ¾ðÆ® »çÀÌÆ®ÀÇ ½ºÅ©¸³Æ®¸¦ ÀÎ ¶óÀÎÀ¸·Î ÁöÁ¤Çϰųª
¿ÜºÎÀÇ ÀÚ¿øÀ¸·ÎºÎÅÍ ½ºÅ©¸³Æ®ÀÇ Äڵ带 ÀоîµéÀ̰ųª ÇÕ´Ï´Ù.
InlineScript
ÇïÆÛ´Â, ÀÌ ¾çÂÊ ¸ðµÎÀÇ ¹æ½ÄÀ¸·Î ´ëÀÀÇϰí ÀÖ½À´Ï´Ù.
À̰ÍÀº HeadScript
(À¸)·ÎºÎÅÍ ÆÄ»ýÇÑ °ÍÀ̾î, ÀÌ ÇïÆÛ·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ¸Þ¼Òµå´Â ¸ðµÎ »ç¿ë °¡´ÉÇÕ´Ï´Ù.
´ÜÁö,headScript()
¸Þ¼Òµå´ë½Å¿¡
inlineScript()
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
![]() |
HTML Body ½ºÅ©¸³Æ®·ÎÀÇ InlineScript ÀÇ »ç¿ë¹ý |
---|---|
JS ¶óÀ̺귯¸®¾È¿¡´Â,HTML ÀÇ |
JSON (À»)¸¦ µ¹·ÁÁÖ´Â ºä¸¦ ÀÛ¼ºÇÒ ¶§¿¡ ¼ÒÁßÇÑ °ÍÀº, ÀûÀýÇÑ ¸®½ºÆù½º Çì´õ¸¦ ¼³Á¤ÇÏ´Â °ÍÀÔ´Ï´Ù. JSON ºäÇïÆÛ´Â, È®½ÇÈ÷ ±× ÀÛ¾÷À» ½Ç½ÃÇÕ´Ï´Ù. °Ô´Ù°¡ µðÆúÆ®·Î ·¹À̾ƿô Æã¼ÇÀ» ¹«È¿·Î ÇÕ´Ï´Ù (ÇöÀç À¯È¿ÇÑ °æ¿ì). JSON ¸®½ºÆù½º¿¡¼´Â Åë»ó ·¹À̾ƿô Æã¼ÇÀº »ç¿ëÇÏÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù.
JSON ÇïÆÛ´Â ´ÙÀ½°ú °°Àº Çì´õ¸¦ ¼³Á¤ÇÕ´Ï´Ù.
Content-Type: application/json
´ëºÎºÐÀÇ AJAX ¶óÀ̺귯¸®´Â, ¸®½ºÆù½º·Î ÀÌ Çì´õ¸¦ ã¾Æ³»¸é ÀûÀýÈ÷ ó¸®ÇØ ÁÝ´Ï´Ù.
JSON ÇïÆÛÀÇ »ç¿ë¹ýÀº, ÀÌ¿Í °°ÀÌ ¸Å¿ì ´Ü¼øÇÕ´Ï´Ù.
<?php
<?= $this->json($this->data) ?>
?>
À¥ »çÀÌÆ®¸¦ º¹¼ö ¾ð¾î·Î Á¦°øÇÏ´Â Àϵµ ÀÚÁÖ ÀÖ½À´Ï´Ù.
»çÀÌÆ®»óÀÇ ÄÁÅÙÃ÷¸¦ ¹ø¿ªÇÏ·Á¸é ,
Zend Translate
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.À̰ÍÀ» ºä¿Í ÅëÇÕÇϱâ À§Çؼ »ç¿ëÇÏ´Â °ÍÀÌ
Translate
ºäÇïÆÛÀÔ´Ï´Ù.
ÀÌ ÀÌÈÄÀÇ ¸ðµç ¿¹¿¡¼´Â, ´Ü¼øÀº ¹è¿ ¹ø¿ª ¾î´ðÅ͸¦ »ç¿ëÇÕ´Ï´Ù.
¹°·Ð Zend_Translate
ÀÇ ÀÓÀÇÀÇ ÀνºÅϽº³ª ÁÁ¾ÆÇÏ´Â
Zend_Translate_Adapter
ÀÇ ¼ºê Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â °Íµµ °¡´ÉÇÕ´Ï´Ù.
Translate
ºäÇïÆÛÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇÏ·Á¸é ¸î°³ÀÇ ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
»çÀü¿¡ Zend_Registry
¿¡ µî·ÏÀ» ¸¶Ä£ ÀνºÅϽº¸¦ »ç¿ëÇÑ´Ù
È帣´Â ÀÎÅÍÆäÀ̽º·Î ³ªÁß¿¡ Ãß°¡ÇÑ´Ù
Ŭ·¡½ºÀÇ ÀνºÅϽºÀÇ ÀÛ¼º½Ã¿¡ Á÷Á¢ ÁöÁ¤ÇÑ´Ù
µî·ÏÀ» ¸¶Ä£ Zend_Translate
ÀÇ ÀνºÅϽº¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ÃßõÇÕ´Ï´Ù.
¾î´ðÅ͸¦ ·¹Áö½ºÆ®¸®¿¡ Ãß°¡ÇÒ ¶§¿¡, »ç¿ëÇÏ´Â ·ÎÄÉÀÏÀ» ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
![]() |
ÁÖÀÇ |
---|---|
¿©±â¼ ¾ð¾î´Â ¾Æ´Ï°í ·ÎÄÉÀÏÀ̶ó°í ¸»ÇÏ´Â °ÍÀº, ¾ð¾î¿¡´Â Áö¿ªÀ» Æ÷ÇÔÇÒ °¡´É¼ºÀÌ Àֱ⠶§¹®ÀÔ´Ï´Ù. ¿¹¸¦ µé¾î ¿µ¾î´Â ¿©·¯°¡Áö Áö¿ª¿¡¼ À̾߱âÇØÁö°í ÀÖ½À´Ï´Ù. ¿µ±¹ ¿µ¾î³ª ¹Ì±¹ ¿µ¾î µî º¹¼öÀÇ ¹ø¿ªÀÌ Á¸ÀçÇÕ´Ï´Ù. °Å±â¼, ¿©±â¿¡¼´Â "¾ð¾î" ÀÌ·¸°Ô ¸»ÇÏÁö ¾Ê°í "·ÎÄÉÀÏ" (À¸)·Î Çϰí ÀÖ½À´Ï´Ù. |
·Ê 41.17. µî·ÏÀ» ¸¶Ä£ ÀνºÅϽº
µî·ÏÀ» ¸¶Ä£ ÀνºÅϽº¸¦ »ç¿ëÇÏ·Á¸é , ¿ì¼± Zend_Translate
ȤÀº
Zend_Translate_Adapter
ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇØ,
±×°ÍÀ» Zend_Registry
¿¡ µî·ÏÇÕ´Ï´Ù.µî·ÏÇÒ ¶§ÀÇ Å°·Î¼
Zend_Translate
(À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
<?php
// »ùÇà ¾î´ðÅÍ
$adapter = new Zend_Translate('array', array('simple' => 'einfach'), 'de');
Zend_Registry::set('Zend_Translate', $adapter);
// ºä Áß(¾È)¿¡¼
echo $this->translate('simple');
// À̰ÍÀº 'einfach' (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù
?>
È帣´Â ÀÎÅÍÆäÀ̽º ÂÊÀÌ Ä£¼÷ÇÔÀÌ ÀÖ´Ù°í ÇÏ´Â °æ¿ì´Â, ºä Áß(¾È)¿¡¼ ÀνºÅϽº¸¦ ÀÛ¼ºÇØ, ÇïÆÛÀÇ ÀνºÅϽº´Â ´ÙÀ½¿¡ ÀÛ¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
·Ê 41.18. ºä Áß(¾È)¿¡¼
È帣´Â ÀÎÅÍÆäÀ̽º·Î Zend_Translate
ȤÀº
Zend_Translate_Adapter
ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇÏ·Á¸é ,
ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤ÇÏÁö ¾Ê°í ÇïÆÛ¸¦ ÄÝ ÇØ, ±×¸®°í
setTranslator()
¸Þ¼Òµå¸¦ ÄÝ ÇÕ´Ï´Ù.
<?php
// ºä Áß(¾È)¿¡¼
$adapter = new Zend_Translate('array', array('simple' => 'einfach'), 'de');
$this->translate()->setTranslator($adapter)->translate('simple');
// À̰ÍÀº 'einfach' (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù
?>
ÇïÆÛ¸¦ Zend_View
¾øÀÌ »ç¿ëÇϸé,
ÇïÆÛ¸¦ Á÷Á¢ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
·Ê 41.19. Á÷Á¢ »ç¿ëÇÏ´Â ¹æ¹ý
<?php
// »ùÇà ¾î´ðÅÍ
$adapter = new Zend_Translate('array', array('simple' => 'einfach'), 'de');
// ¾î´ðÅ͸¦ ÃʱâÈÇÕ´Ï´Ù
$translate = new Zend_View_Helper_Translate($adapter);
print $translate->translate('simple'); // À̰ÍÀº 'einfach' (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù
?>
Zend_View
(Àº)´Â »ç¿ëÇÏÁö ¾ÊÁö¸¸,
¹ø¿ªÇÑ °á°ú¸¦ °®°í ½Í´Ù°í ÇÏ´Â °æ¿ì¿¡ ÀÌ ¹æ½ÄÀ» »ç¿ëÇÕ´Ï´Ù.
Áö±Ý±îÁö ºÁ ¿Â °Íó·³,translate()
¸Þ¼Òµå´Â ¹ø¿ªÀ» µ¹·ÁÁÝ´Ï´Ù.
¹ø¿ª ¾î´ðÅÍÀÇ ¸Þ¼¼Áö ID (À»)¸¦ ÁöÁ¤ÇØ À̰ÍÀ» ÄÝ ÇÕ´Ï´Ù.
°Ô´Ù°¡ ¹ø¿ª ¹®ÀÚ¿¾ÈÀÇ ÆÄ¶ó¹ÌÅ͸¦ ġȯÇÏ´Â °Íµµ °¡´ÉÇÕ´Ï´Ù.
ÆÄ¶ó¹ÌÅÍÀÇ °ªÀ» ÁöÁ¤ÇÏ´Â ¹æ¹ý¿¡´Â 2ÅëÀÖ½À´Ï´Ù.
ÆÄ¶ó¹ÌÅÍÀÇ ¸®½ºÆ®¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ýÀΰ¡, ȤÀº ÆÄ¶ó¹ÌÅÍÀÇ ¹è¿À» ÁöÁ¤ÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.
¿¹¸¦ µé¾î ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù.
·Ê 41.20. ´ÜÀÏÀÇ ÆÄ¶ó¹ÌÅÍ
´ÜÀÏÀÇ ÆÄ¶ó¹ÌÅ͸¦ »ç¿ëÇÏ·Á¸é , ´ÜÁö ±×°ÍÀ» ¸Þ¼Òµå¿¡ Ãß°¡ÇÕ´Ï´Ù.
<?php
// ºä Áß(¾È)¿¡¼
$date = "Monday";
$this->translate('Today is %1$s', $date);
// À̰ÍÀº 'Heute ist Monday' (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù
?>
![]() |
ÁÖÀÇ |
---|---|
ÆÄ¶ó¹ÌÅÍÀÇ °ª¿¡ ÅØ½ºÆ®¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â, ÀÌ ÆÄ¶ó¹ÌÅÍÀÇ °ªµµ ¹ø¿ªÇØ¾ß ÇÏ´Â °Í¿¡ ÁÖÀÇÇսôÙ. |
·Ê 41.21. ÆÄ¶ó¹ÌÅÍÀÇ ¸®½ºÆ®
ÆÄ¶ó¹ÌÅÍÀÇ ¸®½ºÆ®¸¦ »ç¿ëÇϰí, ±×°ÍÀ» ¸Þ¼Òµå¿¡ Ãß°¡ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
<?php
// ºä Áß(¾È)¿¡¼
$date = "Monday";
$month = "April";
$time = "11:20:55";
$this->translate('Today is %1$s in %2$s. Actual time: %3$s', $date, $month, $time);
// À̰ÍÀº 'Heute ist Monday in April. Aktuelle Zeit: 11:20:55' (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù
?>
·Ê 41.22. ÆÄ¶ó¹ÌÅÍÀÇ ¹è¿
ÆÄ¶ó¹ÌÅÍÀÇ ¹è¿À» »ç¿ëÇϰí, ±×°ÍÀ» ¸Þ¼Òµå¿¡ Ãß°¡ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
<?php
// ºä Áß(¾È)¿¡¼
$date = array("Monday", "April", "11:20:55");
$this->translate('Today is %1$s in %2$s. Actual time: %3$s', $date);
// À̰ÍÀº 'Heute ist Monday in April. Aktuelle Zeit: 11:20:55' (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù
?>
¹ø¿ªÀÇ ·ÎÄÉÀÏÀ» º¯°æÇØ¾ß ÇÏ´Â °Íµµ ÀÖ°ÚÁö¿ä. ¹ø¿ª ´ÜÀ§·Î µ¿ÀûÀ¸·Î º¯°æÇÒ ¼öµµ ÀÖ½À´Ï´Ù¸¸, Á¤ÀûÀ¸·Î º¯°æÇØ ±× ÀÌÈÄÀÇ ¸ðµç ¹ø¿ª¿¡ Àû¿ë½Ãų ¼öµµ ÀÖ½À´Ï´Ù. ±×¸®°í, ÆÄ¶ó¹ÌÅÍ ¸®½ºÆ®Çü ȤÀº ÆÄ¶ó¹ÌÅÍ ¹è¿ÇüÀÇ ¾î´À ÂÊÀÇ Çü½Ä¿¡¼µµ ±×°ÍÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. È÷µîÀÇ Çü½ÄÀÇ °æ¿ìµµ, ·ÎÄÉÀÏÀº ¸¶Áö¸· ÆÄ¶ó¹ÌÅͷμ ÁöÁ¤ÇÕ´Ï´Ù.
·Ê 41.23. ·ÎÄÉÀÏÀÇ µ¿ÀûÀÎ º¯°æ
<?php
// ºä Áß(¾È)¿¡¼
$date = array("Monday", "April", "11:20:55");
$this->translate('Today is %1$s in %2$s. Actual time: %3$s', $date, 'it');
?>
ÀÌ ¿¹´Â, ÁöÁ¤ÇÑ ¸Þ¼¼Áö ID ¿¡ ´ëÀÀÇÏ´Â ÀÌÅ»¸®¾Æ¾îÀÇ ¹ø¿ªÀ» µ¹·ÁÁÝ´Ï´Ù. ±×·¯³ª, ÀÌÅ»¸®¾Æ¾î¸¦ µ¹·ÁÁÖ´Â °ÍÀº ÀÌ ¶§¸¸ÀÔ´Ï´Ù. ´ÙÀ½ÀÇ ¹ø¿ªÀ¸·Î´Â, ¾î´ðÅÍ·Î ¼³Á¤µÇ¾î ÀÖ´Â ·ÎÄÉÀÏÀ» »ç¿ëÇÕ´Ï´Ù. Åë»óÀº, »ç¿ëÇÏ°í ½ÍÀº ·ÎÄÉÀÏÀ» ¹ø¿ª ¾î´ðÅÍ·Î ¼³Á¤ÇÏ°í ³ª¼ ·¹Áö½ºÆ®¸®¿¡ Ãß°¡ÇÕ´Ï´Ù. ±×·¯³ª, ·ÎÄÉÀÏÀÇ ¼³Á¤À» ÇïÆÛ³»¿¡¼ ½Ç½ÃÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
·Ê 41.24. ·ÎÄÉÀÏÀÇ Á¤ÀûÀÎ º¯°æ
<?php
// ºä Áß(¾È)¿¡¼
$date = array("Monday", "April", "11:20:55");
$this->setLocale('it')->translate('Today is %1$s in %2$s. Actual time: %3$s', $date);
?>
À§ÀÇ ¿¹¿¡¼´Â »õ·Î¿î µðÆúÆ® ·ÎÄÉÀϷμ 'it'
(À»)¸¦ ¼³Á¤Çϰí ÀÖ¾î, ÀÌ ÀÌÈÄÀÇ ¹ø¿ªÀ¸·Î´Â ÀÌ ·ÎÄÉÀÏÀ» »ç¿ëÇÕ´Ï´Ù.
¹°·Ð, ÇöÀç ¼³Á¤µÇ¾î ÀÖ´Â ·ÎÄÉÀÏÀ» ÃëµæÇϱâ À§ÇÑ ¸Þ¼Òµå
getLocale()
µµ ÀÖ½À´Ï´Ù.
·Ê 41.25. ÇöÀç ¼³Á¤µÇ¾î ÀÖ´Â ·ÎÄÉÀÏÀÇ Ãëµæ
<?php
// ºä Áß(¾È)¿¡¼
$date = array("Monday", "April", "11:20:55");
// Áö±Ý±îÁöÀÇ ¿¹·Î ¼³Á¤µÇ¾î ÀÖ´Â µðÆúÆ® ·ÎÄÉÀÏÀÌ´Ù 'de' (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù
$this->getLocale();
$this->setLocale('it')->translate('Today is %1$s in %2$s. Actual time: %3$s', $date);
// »õ·Ó°Ô ¼³Á¤µÈ µðÆúÆ® ·ÎÄÉÀÏÀÌ´Ù 'it' (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù
$this->getLocale();
?>
ºä½ºÅ©¸³Æ®¿Í °°ÀÌ,
Zend_View
ÇÏÁö¸¸ ÇïÆÛ Ŭ·¡½º¸¦ ã´Â ÆÐ½º¸¦ ÄÜÆ®·Ñ·¯·ÎºÎÅÍ °ãÃÄ ½×¾Æ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
µðÆúÆ®¿¡¼´Â,Zend_View
ÇÏ "Zend/View/Helper/*" (À¸)·ÎºÎÅÍ ÇïÆÛ Ŭ·¡½º¸¦ ã½À´Ï´Ù.
Zend_View
¿¡ ´Ù¸¥ Àå¼Ò¸¦ ãµµ·Ï(µíÀÌ) ÁöÁ¤ÇÏ·Á¸é
setHelperPath()
¹× addHelperPath()
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
°Ô´Ù°¡ Äí¶ó½ºÇÁ·¹ÇȽº¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
À̰Ϳ¡ ÀÇÇØ, ÇïÆÛ Ŭ·¡½º¿¡ À̸§ °ø°£À» ¼³Á¤ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
µðÆúÆ®·Î Äí¶ó½ºÇÁ·¹ÇȽº¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Ò´ø °æ¿ì´Â,
'Zend_View_Helper_' ÀÌ´Ù°í º¸¿©Áý´Ï´Ù.
<?php
$view = new Zend_View();
// ÆÐ½º¸¦ /path/to/more/helpers , ÇÁ·¹ÇȽº¸¦ 'My_View_Helper' (¿Í)°ú ¼³Á¤ÇÕ´Ï´Ù
$view->setHelperPath('/path/to/more/helpers', 'My_View_Helper');
addHelperPath()
¸Þ¼Òµå¸¦ »ç¿ëÇϸé, °Ë»ö ÆÐ½º¸¦ ¡¸°ãÃÄ ½×´Â´Ù¡¹
ÀÏÀÌ »ý±é´Ï´Ù.À̰ÍÀ» »ç¿ëÇϸé,Zend_View
(Àº)´Â Á¦ÀÏ ¸¶Áö¸·¿¡ Ãß°¡µÈ ÆÐ½º·ÎºÎÅÍ ÇïÆÛ Ŭ·¡½º¸¦ ã±â ½ÃÀÛÇÕ´Ï´Ù.
À̰Ϳ¡ ÀÇÇØ, ºÎ¼ÓµÇ¾î ÀÖ´Â ÇïÆÛÀÇ ³»¿ëÀ» µ¡¾²±âÇϰųª
»õ·Î¿î ÇïÆÛ¸¦ Ãß°¡Çϰųª ÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
<?php
$view = new Zend_View();
// /path/to/some/helpers (À»)¸¦ Äí¶ó½ºÇÁ·¹ÇȽº 'My_View_Helper' ±×¸®°í Ãß°¡ÇÕ´Ï´Ù
$view->addHelperPath('/path/to/some/helpers', 'My_View_Helper');
// /other/path/to/helpers (À»)¸¦ Äí¶ó½ºÇÁ·¹ÇȽº 'Your_View_Helper' ±×¸®°í Ãß°¡ÇÕ´Ï´Ù
$view->addHelperPath('/other/path/to/helpers', 'Your_View_Helper');
// $this->helperName() (À»)¸¦ ÄÝ Çϸé,Zend_View ÇÏ
// ¿ì¼± ÃÖÃÊ·Î "/other/path/to/helpers/HelperName.php" ±×¸®°í "My_View_Helper_HelperName" (ÀÌ)¶ó´Â À̸§ÀÇ Å¬·¡½º¸¦ ã¾Æ,
// ´ÙÀ½¿¡ "/path/to/some/helpers/HelperName" ±×¸®°í "Your_View_Helper_HelperName" (ÀÌ)¶ó´Â À̸§ÀÇ Å¬·¡½º¸¦ ã¾Æ,
// ±×¸®°í ¸¶Áö¸·¿¡ "Zend/View/Helpers/HelperName.php" ±×¸®°í "Zend_View_Helper_HelperName" (ÀÌ)¶ó´Â À̸§ÀÇ Å¬·¡½º¸¦ ã½À´Ï´Ù.
µ¶ÀÚÀûÀÎ ÇïÆÛ¸¦ ¾²´Â °ÍÀº °£´ÜÇÕ´Ï´Ù.ÀÌÇÏÀÇ ±ÔÄ¢¿¡ µû¶ó ÁÖ¼¼¿ä.
Ŭ·¡½º¸íÀº, Àû¾îµµ ÃÖÈÄ´Â ÇïÆÛÀÇ À̸§°ú °°Àº Çʿ䰡 ÀÖ½À´Ï´Ù.
CamelCaps ¹æ½ÄÀ» »ç¿ëÇÕ´Ï´Ù.¿¹¸¦ µé¾î
"specialPurpose" (ÀÌ)¶ó´Â À̸§ÀÇ ÇïÆÛ¸¦ ÀÛ¼ºÇßÀ» °æ¿ì´Â, ±× Ŭ·¡½º¸í¿¡´Â
ÃÖÀúÇÑ "SpecialPurpose" ÇÏÁö¸¸ Æ÷ÇԵǾî ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù.
ÀÌ Å¬·¡½º¸í¿¡ ÇÁ·¹ÇȽº¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÇÁ·¹ÇȽºÀÇ ÀϺο¡ 'View_Helper' (À»)¸¦ Æ÷ÇÔÇÏ´Â °ÍÀ» Ãßõ ÇÕ´Ï´Ù.¿¹¸¦ µé¾î
"My_View_Helper_SpecialPurpose" (¿Í)°ú °°ÀÌ µË´Ï´Ù
(addHelperPath()
(ÀÌ)³ª
setHelperPath()
¿¡´Â ÇÁ·¹ÇȽº¸¦ ÁöÁ¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
¸¶Áö¸· ¾ð´õ ½ºÄھƴ Æ÷ÇÔÇØµµ Æ÷ÇÔÇÏÁö ¾Ê¾Æµµ ±¦Âú½À´Ï´Ù).
Ŭ·¡½º´Â, ÇïÆÛ¿Í °°Àº À̸§ÀÇ public ¸Þ¼Òµå¸¦ °¡Áö°í ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù. ÅÛÇø´ÀÌ "$this->specialPurpose()" (À»)¸¦ ÄÝ ÇßÀ» ¶§¿¡, ÀÌ ¸Þ¼Òµå°¡ ÄÝ µË´Ï´Ù."specialPurpose" ÇïÆÛÀÇ ¿¹¿¡¼´Â, "public function specialPurpose()" ±×·¸´Ù°í ÇÏ´Â ¸Þ¼Òµå°¡ ÇÊ¿äÇÕ´Ï´Ù.
ÀϹÝÀûÀ¸·Î, Ŭ·¡½º¿¡¼´Â echo (ÀÌ)³ª print ±× ¿ÜÀÇ Ãâ·ÂÀ» ½Ç½ÃÇØ¼´Â ¾ÈµË´Ï´Ù. ±× ´ë½Å¿¡,print ȤÀº echo µÇ´Â ³»¿ëÀ» µ¹·ÁÁÝ´Ï´Ù. µ¹¾Æ°¡ °ªÀº, ÀûÀýÈ÷ À̽ºÄÉÀÌÇÁ ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
Ŭ·¡½º´Â, ÇïÆÛ Ŭ·¡½º¿Í °°Àº À̸§ÀÇ ÆÄÀÏ¿¡ ÀÛ¼ºÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ´Ù½Ã "specialPurpose" ÇïÆÛ¸¦ ¿¹¸¦ µé¸é, ÆÄÀϸíÀº "SpecialPurpose.php" (ÀÌ)°¡ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù.
ÁöÁ¤ÇÑ ÇïÆÛ ÆÐ½ºÀÇ ¾îµð¿£°¡ ÇïÆÛ Ŭ·¡½ºÀÇ ÆÄÀÏÀ» ¹èÄ¡Çϸé,
Zend_View
(Àº)´Â ÀÚµ¿ÀûÀ¸·Î ±×°ÍÀ» Àоîµé¿© ÀνºÅϽº¸¦ ÀÛ¼ºÇØ,
Çʿ信 µû¶ó¼ ½ÇÇàÇÕ´Ï´Ù.
SpecialPurpose
ÇïÆÛÀÇ ÄÚµåÀÇ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
<?php
class My_View_Helper_SpecialPurpose
{
protected $_count = 0;
public function specialPurpose()
{
$this->_count++;
$output = "'The Jerk' (À»)¸¦ {$this->_count} ȸ º¸¾Ò½À´Ï´Ù.";
return htmlspecialchars($output);
}
}
±×¸®°í, ºä½ºÅ©¸³Æ®³»¿¡¼ SpecialPurpose
ÇïÆÛ¸¦ ÇÊ¿äÇÑ ¸¸Å ÄÝ ÇÕ´Ï´Ù.ÇÑ ¹ø ÀνºÅϽº°¡ ÀÛ¼ºµÈ ´ÙÀ½Àº,
Zend_View
ÀνºÅϽº Áß(¾È)¿¡¼ ±×°ÍÀÌ Áö¼ÓÇÕ´Ï´Ù.
<?php
// ºä½ºÅ©¸³Æ®³»¿¡¼´Â,$this ÇÏ Zend_View ÀνºÅϽº¸¦ °¡¸®Å°´Â °ÍÀ» ±â¾ïÇØ µÓ½Ã´Ù.
echo $this->specialPurpose();
echo $this->specialPurpose();
echo $this->specialPurpose();
Ãâ·Â °á°ú´Â, ´ÙÀ½°ú °°ÀÌ µË´Ï´Ù.
'The Jerk' (À»)¸¦ 1 ȸ º¸¾Ò½À´Ï´Ù.
'The Jerk' (À»)¸¦ 2 ȸ º¸¾Ò½À´Ï´Ù.
'The Jerk' (À»)¸¦ 3 ȸ º¸¾Ò½À´Ï´Ù.
½Ã°£¿¡´Â Zend_View
¿ÀºêÁ§Æ®¸¦ »ç¿ëÇÏ°í ½Í¾îÁö±âµµ ÇϰÚÁö¿ä.
¿¹¸¦ µé¾î µî·ÏµÇ¾î ÀÖ´Â ÀÎÄÚµùÀ» »ç¿ëÇÒ Çʿ䰡 Àְųª
ÇïÆÛ³»¿¡¼ ´Ù¸¥ ºä½ºÅ©¸³Æ®¸¦ ·»´õ¸µ ÇÏ°í ½Í¾îÁö°Å³ª¶ó°í ÇßÀ» °æ¿ìÀÔ´Ï´Ù.
ºä¿ÀºêÁ§Æ®¿¡ ¾×¼¼½º ÇÏ·Á¸é , ÇïÆÛ Ŭ·¡½º³»¿¡¼ ´ÙÀ½°ú °°Àº
setView($view)
¸Þ¼Òµå¸¦ Á¤ÀÇÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
<?php
class My_View_Helper_ScriptPath
{
public $view;
public function setView(Zend_View_Interface $view)
{
$this->view = $view;
}
public function scriptPath($script)
{
return $this->view->getScriptPath($script);
}
}
ÇïÆÛ Ŭ·¡½º¿¡¼ setView()
¸Þ¼Òµå¸¦ Á¤ÀÇÇØ µÎ¸é,
ÃÖÃÊ·Î ÀνºÅϽº°¡ ÀÛ¼ºµÉ ¶§¿¡ ÀÚµ¿ÀûÀ¸·Î ÀÌ ¸Þ¼Òµå°¡ ÄÝ µÇ¾î
ÇöÀçÀÇ ºä¿ÀºêÁ§Æ®°¡ Àμö·Î¼ °Ç³×¹Þ½À´Ï´Ù.
°Ç³×¹ÞÀº ¿ÀºêÁ§Æ®¸¦ Ŭ·¡½º³»¿¡¼ ¾î¶»°Ô °ü¸®ÇÒ±î´Â Ưº°È÷ Á¤ÇØÁ® ÀÖÁö ¾Ê½À´Ï´Ù.
ÁÁ¾ÆÇÏ´Â ¹æ¹ýÀ¸·Î °ü¸®ÇØ ÁÖ¼¼¿ä.