41.4. ºäÇïÆÛ

ºä½ºÅ©¸³Æ® Áß(¾È)¿¡¼­, º¹ÀâÇÑ ÇÔ¼ö¸¦ ¹Ýº¹ÇØ ½ÇÇàÇØ¾ß ÇÏ´Â °Íµµ ÀÖ°ÚÁö¿ä (¿¹¸¦ µé¸é ÀÏÀÚÀÇ Æ÷¸Ë, Æû ¿ä¼ÒÀÇ ÀÛ¼º, ¸µÅ©ÀÇ ÀÛ¼º µî). ÀÌ·¯ÇÑ ÀÛ¾÷À» ½Ç½ÃÇϱâ À§Çؼ­, ÇïÆÛ Ŭ·¡½º¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÇïÆÛÀÇ Á¤Ã¼´Â, ´Ü¼øÇÑ Å¬·¡½ºÀÔ´Ï´Ù.¿¹¸¦ µé¾î 'fooBar' (ÀÌ)¶ó´Â À̸§ÀÇ ÇïÆÛ¸¦ »ç¿ëÇÑ´Ù°í ÇսôÙ. µðÆúÆ®¿¡¼­´Â, Ŭ·¡½º¸íÀÇ ¼±µÎ¿¡´Â 'Zend_View_Helper_' ÇÏÁö¸¸ ´ÙÇÕ´Ï´Ù (ÇïÆÛ ÆÐ½º¸¦ ¼³Á¤ÇÒ ¶§¿¡, À̰ÍÀº µ¶ÀÚÀûÀÎ °ÍÀ¸·Î º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù). ±×¸®°í Ŭ·¡½º¸íÀÇ ¸¶Áö¸· ºÎºÐÀÌ ÇïÆÛÀÇ À̸§ÀÌ µË´Ï´Ù. ÀÌ ¶§, ´Ü¾îÀÇ ¼±µÎ´Â ´ë¹®ÀÚ·Î ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.Áï, ÇïÆÛÀÇ Å¬·¡½º¸íÀº Zend_View_Helper_FooBar µË´Ï´Ù.ÀÌ Å¬·¡½º¿¡´Â, ÃÖÀúÇÑ ÇïÆÛ¸í°ú °°Àº À̸§ (camelCase Çü½ÄÀ¸·Î ÇÑ °Í) ÀÇ ¸Þ¼Òµå fooBar() ÇÏÁö¸¸ Æ÷ÇÔµÇÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.

[ÁÖÀÇ] ´ë¹®ÀÚ ¼Ò¹®ÀÚÀÇ Ãë±Þ

ÇïÆÛ¸íÀº Ç×»ó camelCase Çü½ÄÀÌ µË´Ï´Ù. Áï, óÀ½Àº Ç×»ó ¼Ò¹®ÀÚ°¡ µË´Ï´Ù. Ŭ·¡½º¸íÀº CamelCase Çü½ÄÀÔ´Ï´Ù¸¸, ½ÇÁ¦·Î ½ÇÇàµÇ´Â ¸Þ¼Òµå´Â camelCase Çü½ÄÀÌ µË´Ï´Ù.

[ÁÖÀÇ] µðÆúÆ®ÀÇ ÇïÆÛ ÆÐ½º

µðÆúÆ®ÀÇ ÇïÆÛ ÆÐ½º´Â Ç×»ó Zend Framework ÀÇ ºäÇïÆÛÀÇ ÆÐ½º, Áï 'Zend/View/Helper/' µË´Ï´Ù. setHelperPath() (À»)¸¦ ÄÝ ÇØ ±âÁ¸ÀÇ ÆÐ½º¸¦ µ¡¾²±âÇØµµ, ÀÌ ÆÐ½º¸¸Àº ³²½À´Ï´Ù.À̰Ϳ¡ ÀÇÇØ, µðÆúÆ®ÀÇ ÇïÆÛ´Â Ç×»ó µ¿ÀÛÇÏ´Â °ÍÀÌ º¸ÁõµË´Ï´Ù.

ºä½ºÅ©¸³Æ®³»¿¡¼­ ÇïÆÛ¸¦ »ç¿ëÇÏ·Á¸é , $this->helperName() (À»)¸¦ ÄÝ ÇÕ´Ï´Ù.À̰ÍÀ» ÄÝ Çϸé, µÚÆí¿¡¼­´Â Zend_View ÇÏÁö¸¸ Zend_View_Helper_HelperName Ŭ·¡½º¸¦ Àоîµé¿©, ±× Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇØ helperName() ¸Þ¼Òµå¸¦ ÄÝ ÇÕ´Ï´Ù. ¿ÀºêÁ§Æ®ÀÇ ÀνºÅϽº´Â Zend_View ÀνºÅϽº¾È¿¡ °è¼Ó ³²¾Æ ´ÙÀ½¿¡ $this->helperName() ÇÏÁö¸¸ ÄÝ µÇ¾úÀ» ¶§¿¡´Â ÀçÀÌ¿ëµË´Ï´Ù.

41.4.1. ºÎ¼ÓÀÇ ÇïÆÛ

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>

41.4.1.1. Action ºäÇïÆÛ

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>

41.4.1.2. Partial ÇïÆÛ

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>

[ÁÖÀÇ] ¸ðµ¨Àº ¹«¾ù?

Partial ºäÇïÆÛ°¡ »ç¿ëÇÏ´Â ¸ðµ¨Àº, ´ÙÀ½ÀÇ ¾ðÁ¨°¡µË´Ï´Ù.

  • ¹è¿­. ¹è¿­À» °Ç³×ÁÖ´Â °æ¿ì´Â, ¿¬»ó ¹è¿­ Çü½ÄÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù. ±× Ű¿Í °ªÀÇ Æä¾î°¡ ºä¿¡°Ô °Ç³×Á® ۰¡ º¯¼ö¸íÀÌ µË´Ï´Ù.

  • toArray() ¸Þ¼Òµå¸¦ ½ÇÀåÇÑ ¿ÀºêÁ§Æ®. ±× ¿ÀºêÁ§Æ®ÀÇ toArray() ¸Þ¼Òµå¸¦ ½ÇÇàÇÑ °á°ú°¡, ºä¿ÀºêÁ§Æ®¿¡°Ô °Ç³×Áý´Ï´Ù.

  • Ç¥ÁØÀÇ ¿ÀºêÁ§Æ®. ±× ÀÌ¿ÜÀÇ ¿ÀºêÁ§Æ®¿¡ ´ëÇØ¼­´Â, object_get_vars() ÀÇ °á°ú (±× ¿ÀºêÁ§Æ®ÀÇ ¸ðµç public ÇÁ·ÓÆÛƼ) ÇÏÁö¸¸ ºä¿ÀºêÁ§Æ®¿¡°Ô °Ç³×Áý´Ï´Ù.

·Ê 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 (Àº)´Â, °øÀ¯ÀÇ ºä½ºÅ©¸³Æ®ÀÇ ÆÐ½º¿¡ ¹èÄ¡ÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.


41.4.1.3. Placeholder ÇïÆÛ

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 ?>

41.4.1.3.1. Ç÷¹À̽ºÈ¦´õÀÇ ±¸»ó ½ÇÀå

Zend Framework ¿¡´Â,"±¸Ã¼ÀûÀÎ" Ç÷¹À̽ºÈ¦´õÀÇ ½ÇÀåÀÌ Ç¥ÁØÀ¸·Î ¸î°³Àΰ¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. À̰͵éÀº ¸ðµÎ ÀϹÝÀûÀ¸·Î ÀÌ¿ëµÇ´Â °ÍÀ¸·Î,doctype (ÀÌ)³ª ÆäÀÌÁöÀÇ Å¸ÀÌÆ²,<head> ÀÇ ¿ä¼Ò±ºµîÀ» Ãë±ÞÇÕ´Ï´Ù. ¾î´À Ç÷¹À̽ºÈ¦´õ¿¡ ´ëÇØ¼­µµ, Àμö ¾øÀÌ ÄÝ ÇÏ¸é ±× ¿ä¼Ò ÀÚ½ÅÀ» µ¹·ÁÁÝ´Ï´Ù.

°¢ ¿ä¼ÒÀÇ ¹®¼­´Â, ÀÌÇÏÀÇ ¸µÅ©Ã³¿¡¼­ °³º°ÀûÀ¸·Î Ãë±ÞÇÕ´Ï´Ù.

41.4.1.4. Doctype ÇïÆÛ

¿Ã¹Ù¸¥ Çü½ÄÀÇ 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()) {
    
// ¹«¾ùÀΰ¡¸¦ ÇÕ´Ï´Ù
}
?>

41.4.1.5. HeadLink ÇïÆÛ

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() ?>

41.4.1.6. HeadMeta ÇïÆÛ

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() ?>


41.4.1.7. HeadScript ÇïÆÛ

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 ÀÇ body ºÎ¿¡ ½ºÅ©¸³Æ®¸¦ ¹¯°í ½ÍÀº °æ¿ì´Â, HeadScript ÀÇ ÀÚ¸ÅÆÇÀÌ´Ù InlineScript (À»)¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ½ºÅ©¸³Æ®¸¦ ¹®¼­ÀÇ ¸¶Áö¸· Æí¿¡ ¹èÄ¡Çϵµ·Ï(µíÀÌ) Çϸé, ÆäÀÌÁöÀÇ Ç¥½Ã ¼Óµµ°¡ Çâ»óÇÕ´Ï´Ù.ƯÈ÷, ½áµåÆÄƼÀÇ ¾×¼¼½º ÇØ¼®¿ë ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÏ´Â °æ¿ì µî¿¡ ÀÌ È¿°ú°¡ ÇöÀúÇÏ°Ô ³ªÅ¸³³´Ï´Ù.

[ÁÖÀÇ] ¸ðµç ¼Ó¼ºÀº µðÆúÆ®·Î ¹«È¿

µðÆúÆ®¿¡¼­´Â,HeadScript ÇÏÁö¸¸ ·»´õ¸µ ÇÑ´Ù <script> ÀÇ ¼Ó¼ºÀº W3C ¿¡ ÀÎÁ¤µÇ°í ÀÖ´Â °Í »ÓÀÔ´Ï´Ù. 'type' (ÀÌ)³ª 'charset','defer','language' ±×¸®°í 'src' ÇÏÁö¸¸ ÇØ´çÇÕ´Ï´Ù. ±×·¯³ª,Javascript ÀÇ Ã¼Á¦ (Dojo µî) ±×·³ µ¶ÀÚÀûÀÎ ¼Ó¼ºÀ» ÀÌ¿ëÇÏ´Â °ÍÀ¸·Î ±× °Åµ¿À» º¯°æÇϰí ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¼Ó¼ºÀ» Çã°¡ÇÏ·Á¸é , setAllowArbitraryAttributes() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.


<?php
$this
->headScript()->setAllowArbitraryAttributes(true);
?>

·Ê 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 ¹øÂ°ÀÇ Àμö¿¡ ¹è¿­ Çü½Ä¿¡¼­ °Ç³×ÁÝ´Ï´Ù.


41.4.1.8. HeadStyle ÇïÆÛ

HTML ÀÇ <style> ¿ä¼Ò¸¦ »ç¿ëÇϰí, CSS ½ºÅ¸ÀÏ ½ÃÆ®¸¦ HTML ÀÇ <head> ¿ä¼Ò¿¡ ¹¯½À´Ï´Ù.

[ÁÖÀÇ] HeadLink (À»)¸¦ »ç¿ëÇß´Ù CSS ÆÄÀÏ¿¡ÀÇ ¸µÅ©

¿ÜºÎ ½ºÅ¸ÀÏ ½ÃÆ®ÀÇ Àбâ¿ëÀÇ <link> ¿ä¼Ò¸¦ ÀÛ¼ºÇÏ´Â °æ¿ì´Â HeadLink (À»)¸¦ »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.½ºÅ¸ÀÏ ½ÃÆ®¸¦ ÀÎ ¶óÀÎÀ¸·Î Á¤ÀÇÇÏ°í ½ÍÀº °æ¿ì¿¡ HeadScript (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.

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 ¹øÂ°ÀÇ Àμö¿¡ ¹è¿­ Çü½Ä¿¡¼­ °Ç³×ÁÝ´Ï´Ù.


41.4.1.9. HeadTitle ÇïÆÛ

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() ?>

41.4.1.10. InlineScript ÇïÆÛ

HTML ÀÇ <script> ¿ä¼Ò¸¦ »ç¿ëÇϰí, Ŭ¶óÀÌ¾ðÆ® »çÀÌÆ®ÀÇ ½ºÅ©¸³Æ®¸¦ ÀÎ ¶óÀÎÀ¸·Î ÁöÁ¤Çϰųª ¿ÜºÎÀÇ ÀÚ¿øÀ¸·ÎºÎÅÍ ½ºÅ©¸³Æ®ÀÇ Äڵ带 ÀоîµéÀ̰ųª ÇÕ´Ï´Ù. InlineScript ÇïÆÛ´Â, ÀÌ ¾çÂÊ ¸ðµÎÀÇ ¹æ½ÄÀ¸·Î ´ëÀÀÇϰí ÀÖ½À´Ï´Ù. À̰ÍÀº HeadScript (À¸)·ÎºÎÅÍ ÆÄ»ýÇÑ °ÍÀ̾î, ÀÌ ÇïÆÛ·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ¸Þ¼Òµå´Â ¸ðµÎ »ç¿ë °¡´ÉÇÕ´Ï´Ù. ´ÜÁö,headScript() ¸Þ¼Òµå´ë½Å¿¡ inlineScript() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.

[ÁÖÀÇ] HTML Body ½ºÅ©¸³Æ®·ÎÀÇ InlineScript ÀÇ »ç¿ë¹ý

InlineScript (Àº)´Â, ½ºÅ©¸³Æ®¸¦ HTML ÀÇ body ºÎ¿¡ ¹¯°í ½ÍÀ» ¶§¿¡ »ç¿ëÇÕ´Ï´Ù. ½ºÅ©¸³Æ®¸¦ ¹®¼­ÀÇ ¸¶Áö¸· Æí¿¡ ¹èÄ¡Çϵµ·Ï(µíÀÌ) Çϸé, ÆäÀÌÁöÀÇ Ç¥½Ã ¼Óµµ°¡ Çâ»óÇÕ´Ï´Ù.ƯÈ÷, ½áµåÆÄƼÀÇ ¾×¼¼½º ÇØ¼®¿ë ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÏ´Â °æ¿ì µî¿¡ ÀÌ È¿°ú°¡ ÇöÀúÇÏ°Ô ³ªÅ¸³³´Ï´Ù.

JS ¶óÀ̺귯¸®¾È¿¡´Â,HTML ÀÇ head ±×¸®°í ÀоîµéÀÌÁö ¾ÊÀ¸¸é ¾È µÇ´Â °Íµµ ÀÖ½À´Ï´Ù.±×·¯ÇÑ °æ¿ì´Â HeadScript (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.

41.4.1.11. JSON ÇïÆÛ

JSON (À»)¸¦ µ¹·ÁÁÖ´Â ºä¸¦ ÀÛ¼ºÇÒ ¶§¿¡ ¼ÒÁßÇÑ °ÍÀº, ÀûÀýÇÑ ¸®½ºÆù½º Çì´õ¸¦ ¼³Á¤ÇÏ´Â °ÍÀÔ´Ï´Ù. JSON ºäÇïÆÛ´Â, È®½ÇÈ÷ ±× ÀÛ¾÷À» ½Ç½ÃÇÕ´Ï´Ù. °Ô´Ù°¡ µðÆúÆ®·Î ·¹À̾ƿô Æã¼ÇÀ» ¹«È¿·Î ÇÕ´Ï´Ù (ÇöÀç À¯È¿ÇÑ °æ¿ì). JSON ¸®½ºÆù½º¿¡¼­´Â Åë»ó ·¹À̾ƿô Æã¼ÇÀº »ç¿ëÇÏÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù.

JSON ÇïÆÛ´Â ´ÙÀ½°ú °°Àº Çì´õ¸¦ ¼³Á¤ÇÕ´Ï´Ù.


Content-Type: application/json

´ëºÎºÐÀÇ AJAX ¶óÀ̺귯¸®´Â, ¸®½ºÆù½º·Î ÀÌ Çì´õ¸¦ ã¾Æ³»¸é ÀûÀýÈ÷ ó¸®ÇØ ÁÝ´Ï´Ù.

JSON ÇïÆÛÀÇ »ç¿ë¹ýÀº, ÀÌ¿Í °°ÀÌ ¸Å¿ì ´Ü¼øÇÕ´Ï´Ù.


<?php
<?= $this->json($this->data?>
?>

41.4.1.12. ¹ø¿ª ÇïÆÛ

À¥ »çÀÌÆ®¸¦ º¹¼ö ¾ð¾î·Î Á¦°øÇÏ´Â Àϵµ ÀÚÁÖ ÀÖ½À´Ï´Ù. »çÀÌÆ®»óÀÇ ÄÁÅÙÃ÷¸¦ ¹ø¿ªÇÏ·Á¸é , 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();
?>

41.4.2. ÇïÆÛ ÆÐ½º

ºä½ºÅ©¸³Æ®¿Í °°ÀÌ, 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" (ÀÌ)¶ó´Â À̸§ÀÇ Å¬·¡½º¸¦ ã½À´Ï´Ù.

41.4.3. µ¶ÀÚÀûÀÎ ÇïÆÛ¸¦ ¾´´Ù

µ¶ÀÚÀûÀÎ ÇïÆÛ¸¦ ¾²´Â °ÍÀº °£´ÜÇÕ´Ï´Ù.ÀÌÇÏÀÇ ±ÔÄ¢¿¡ µû¶ó ÁÖ¼¼¿ä.

  • Ŭ·¡½º¸íÀº, Àû¾îµµ ÃÖÈÄ´Â ÇïÆÛÀÇ À̸§°ú °°Àº Çʿ䰡 ÀÖ½À´Ï´Ù. 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() ¸Þ¼Òµå¸¦ Á¤ÀÇÇØ µÎ¸é, ÃÖÃÊ·Î ÀνºÅϽº°¡ ÀÛ¼ºµÉ ¶§¿¡ ÀÚµ¿ÀûÀ¸·Î ÀÌ ¸Þ¼Òµå°¡ ÄÝ µÇ¾î ÇöÀçÀÇ ºä¿ÀºêÁ§Æ®°¡ Àμö·Î¼­ °Ç³×¹Þ½À´Ï´Ù. °Ç³×¹ÞÀº ¿ÀºêÁ§Æ®¸¦ Ŭ·¡½º³»¿¡¼­ ¾î¶»°Ô °ü¸®ÇÒ±î´Â Ưº°È÷ Á¤ÇØÁ® ÀÖÁö ¾Ê½À´Ï´Ù. ÁÁ¾ÆÇÏ´Â ¹æ¹ýÀ¸·Î °ü¸®ÇØ ÁÖ¼¼¿ä.