14.6. Zend_Filter_Inflector

Zend_Filter_Inflector (Àº)´Â, ÁöÁ¤ÇÑ Å¸°ÙÀ¸·Î ´ëÇØ ·ê¿¡ ÀǰÅÇÑ ¹®ÀÚ¿­ º¯È¯À» ÇàÇϱâ À§ÇÑ ¹ü¿ëÀûÀÎ ÅøÀÔ´Ï´Ù.

¿¹¸¦ µé¾î,CamelCase Çü½ÄÀÇ ´Ü¾î¸¦ ÆÐ½º Çü½ÄÀ¸·Î º¯È¯Çϰųª ÇÏ´Â ÀÛ¾÷À» ½Ç½ÃÇÕ´Ï´Ù. Àб⠽¬¿òÀ̳ª OS ÀÇ Æú¸®½ÃµîÀÇ ÀÌÀ¯·Î, ¼Ò¹®ÀÚ¿¡ÀÇ º¯È¯À» ½Ç½ÃÇϰųª µ¥½¬ ('-') ±×¸®°í ´Ü¾î¸¦ ´Ü¶ôÁþ°Å³ª¶ó°í ÇÑ Àûµµ ÀÖ°ÚÁö¿ä. ÀÎÈÄ·¹Å©Å¸´Â, ÀÌ·¯ÇÑ ÀÛ¾÷À» ½Ç½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.

Zend_Filter_Inflector ÇÏ Zend_Filter_Interface (À»)¸¦ ½ÇÀåÇϰí ÀÖ½À´Ï´Ù. ÀÎÇ÷¹ Äí¼ÇÀ» ½ÇÇàÇÏ·Á¸é , ¿ÀºêÁ§Æ®ÀÇ ÀνºÅϽº·Î filter() (À»)¸¦ ÄÝ ÇÕ´Ï´Ù.

·Ê 14.1. CamelCaseText (À»)¸¦ º°Çü½ÄÀ¸·Î º¯È¯ÇÑ´Ù


<?php
$inflector 
= new Zend_Filter_Inflector('pages/:page.:suffix');
$inflector->setRules(array(
    
':page'  => array('Word_CamelCaseToDash''StringToLower'),
    
'suffix' => 'html'
));

$string   'CamelCasedWords';
$filtered $inflector->filter(array('page' => $string)); // pages/camel-cased-words.html

$string   'this_is_not_camel_cased';
$filtered $inflector->filter(array('page' => $string)); // pages/this_is_not_camel_cased.html
?>

14.6.1. Á¶ÀÛ

ÀÎÈÄ·¹Å©Å¸¿¡´Â, ÇϳªÀÇ Å¸°Ù (¿Í)°ú Çϳª ȤÀº º¹¼öÀÇ ·ê ÇÏÁö¸¸ ÇÊ¿äÇÕ´Ï´Ù. Ÿ°ÙÀº ±âº»ÀûÀ¸·Î ¹®ÀÚ¿­À̸ç, ġȯÀ» ½Ç½ÃÇÏ´Â Ç÷¹À̽ºÈ¦´õ¸¦ Á¤ÀÇÇÕ´Ï´Ù. Ç÷¹À̽ºÈ¦´õ´Â, ¼±µÎ¿¡ ':' (À»)¸¦ ºÙ¿© :script (¿Í)°ú °°ÀÌ Á¤ÀÇÇÕ´Ï´Ù.

filter() (À»)¸¦ ÄÝ ÇÒ °æ¿ì¿¡, Ÿ°Ù³»ÀÇ º¯¼ö¿¡ ´ëÀÀÇѴ٠Ű/Ä¡ ÀÇ Æä¾î¸¦ ¹è¿­·Î °Ç³×ÁÝ´Ï´Ù.

Ÿ°Ù³»ÀÇ °³°³ÀÇ º¯¼ö¿¡ ´ëÇØ¼­, Á¦·Î°³ÀÌ»óÀÇ ·êÀ» °ü·Ã ÁöÀ» ¼ö ÀÖ½À´Ï´Ù. ·ê·Î¼­ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â °ÍÀº,Á¤ÀûÀÎ ·êÀΰ¡ Zend_Filter Ŭ·¡½ºÀÔ´Ï´Ù.Á¤ÀûÀÎ ·êÀº, ÁöÁ¤µÈ ÅØ½ºÆ®·Î ġȯÀ» ½Ç½ÃÇÕ´Ï´Ù. ±× ÀÌ¿ÜÀÇ °æ¿ì´Â, ·ê·Î ÁöÁ¤µÈ Ŭ·¡½º¸¦ »ç¿ëÇØ ÅØ½ºÆ®¸¦ º¯È¯ÇÕ´Ï´Ù. Ŭ·¡½º¸¦ ÁöÁ¤ÇÒ ¶§ , °øÅëÀÇ ÇÁ·¹ÇȽº¸¦ Á¦¿ÜÇÑ ÂªÀº Ŭ·¡½º¸íÀ» »ç¿ëÇÕ´Ï´Ù.

¿¹¸¦ µé¾î Zend_Filter ÀÇ ±¸»ó ½ÇÀå Ŭ·¡½º¶ó¸é ¹¹µçÁö »ç¿ë °¡´ÉÇÕ´Ï´Ù. ±×·¯³ª, À̰ÍÀ» »ç¿ëÇÒ ¶§ 'Zend_Filter_Alpha' ȤÀº 'Zend_Filter_StringToLower' (À¸)·Î ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ´ÜÁö 'Alpha' ȤÀº 'StringToLower' ¸¸À¸·Î ÁöÁ¤ÇÏ´Â °ÍÀÔ´Ï´Ù.

14.6.2. ±× ¿ÜÀÇ ÇÊÅÍ Àü¿ëÀÇ ÆÐ½ºÀÇ ¼³Á¤

Zend_Filter_Inflector (Àº)´Â, Zend_Loader_PluginLoader (À»)¸¦ »ç¿ëÇØ ÀÎÇ÷¹ Äí¼Ç¿¡ »ç¿ëÇÏ´Â ÇÊÅÍÀÇ Àб⸦ ½Ç½ÃÇÕ´Ï´Ù. µðÆúÆ®¿¡¼­´Â, Zend_Filter ±×¸®°í ½ÃÀ۵Ǵ ÀÓÀÇÀÇ ÇÊÅ͸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÇÁ·¹ÇȽº·Î ½ÃÀÛµÇÁö¸¸ ´õ ±íÀº °èÃþ¿¡ ÀÖ´Â ÇÊÅÍ, ¿¹¸¦ µé¾î Word °èÀÇ ÇÊÅ͵îÀ» »ç¿ëÇÏ°í ½ÍÀº °æ¿ì´Â, ÇÁ·¹ÇȽº Zend_Filter (À»)¸¦ Á¦¿ÜÇÑ À̸§À» ÁöÁ¤ÇÕ´Ï´Ù.


<?php
// ·ê·Î¼­ Zend_Filter_Word_CamelCaseToDash (À»)¸¦ »ç¿ëÇÕ´Ï´Ù
$inflector->addRules(array('script' => 'Word_CamelCaseToDash'));
?>

´Ù¸¥ ÆÐ½º¸¦ »ç¿ëÇÏ·Á¸é , Ç÷¯±× ÀÎ ·Î´õ¿¡°ÔÀÇ ÇÁ·Ï½Ã·Î¼­ Zend_Filter_Inflector ÀÇ À¯Æ¿¸®Æ¼ ¸Þ¼Òµå addFilterPrefixPath() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.


<?php
$inflector
->addFilterPrefixPath('My_Filter''My/Filter/');
?>

ȤÀº, Ç÷¯±× ÀÎ ·Î´õ¸¦ ÀÎÈÄ·¹Å©Å¸·ÎºÎÅÍ ÃëµæÇϰí, ±×°ÍÀ» Á÷Á¢ Á¶ÀÛÇÒ ¼öµµ ÀÖ½À´Ï´Ù.


<?php
$loader 
$inflector->getPluginLoader();
$loader->addPrefixPath('My_Filter''My/Filter/');
?>

ÇÊÅÍÀÇ ÆÐ½º¸¦ º¯°æÇϱâ À§ÇÑ »ó¼¼ÇÑ ¿É¼ÇÀº,PluginLoader ÀÇ ¹®¼­ (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.

14.6.3. ÀÎÈÄ·¹Å©Å¸ÀÇ Å¸°ÙÀÇ ¼³Á¤

ÀÎÈÄ·¹Å©Å¸ÀÇ Å¸°ÙÀº, º¯¼ö¿ëÀÇ Ç÷¹À̽ºÈ¦´õ¸¦ Æ÷ÇÔÇÑ ¹®ÀÚ¿­ÀÌ µË´Ï´Ù. Ç÷¹À̽ºÈ¦´õ´Â, ¼±µÎ¿¡ ½Äº°ÀÚ¸¦ ºÙ¿© ³ªÅ¸³À´Ï´Ù. µðÆúÆ®ÀÇ ½Äº°ÀÚ´Â ÄÚ·Ð (':') ÀÔ´Ï´Ù. ±×¸®°í ±× ÈÄ¿¡ º¯¼ö¸íÀ» °è¼ÓÇØ ¿¹¸¦ µé¾î ':script' (ÀÌ)³ª ':path' (¿Í)°ú °°ÀÌ µË´Ï´Ù. filter ¸Þ¼Òµå´Â, ½Äº°ÀÚÀÇ µÚ¿¡ °è¼Ó µÇ´Â º¯¼ö¸¦ ã¾Æ ġȯÇÕ´Ï´Ù.

½Äº°ÀÚ¸¦ º¯°æÇÏ·Á¸é setTargetReplacementIdentifier() ¸Þ¼Òµå¸¦ »ç¿ëÇÏ´ÂÁö, constructor¡¡ ¡¡ ÀÇ 3 ¹øÂ°ÀÇ Àμö·Î ÁöÁ¤ÇÕ´Ï´Ù.


<?php
// constructor¡¡ ¡¡ °æÀ¯
$inflector = new Zend_Filter_Inflector('#foo/#bar.#sfx'null'#');

// ¾ÆÅ©¼¼»ç °æÀ¯
$inflector->setTargetReplacementIdentifier('#');
?>

º¸ÅëÀº constructor¡¡ ¡¡ À¸·Î Ÿ°ÙÀ» ÁöÁ¤ÇÏ°Ô µÇ°ÚÁö¿ä. ±×·¯³ª, ³ªÁß¿¡ Ÿ°ÙÀ» ¼³Á¤ ´Ù½Ã ÇÏ°í ½Í¾îÁö±âµµ ÇÒÁöµµ ¸ð¸¨´Ï´Ù (¿¹¸¦ µé¾î, ViewRenderer (ÀÌ)³ª Zend_Layout ±×·¸´Ù°í ÇÏ´Â ÄÚ¾î ÄÄÆÛ³ÍÆ®ÀÇ µðÆúÆ®ÀÇ ÀÎÈÄ·¹Å©Å¸¸¦ º¯°æÇÏ°í ½ÍÀº °æ¿ì µî). ÀÌ ¶§¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÌ setTarget() ÀÔ´Ï´Ù.


<?php
$inflector 
$layout->getInflector();
$inflector->setTarget('layouts/:script.phtml');
?>

°Ô´Ù°¡ Ŭ·¡½ºÀÇ ¸â¹ö¸¦ ÁغñÇØ ÀÎÈÄ·¹Å©Å¸ÀÇ Å¸°ÙÀ» º¯°æÇÒ ¼ö ÀÖµµ·Ï ÇÏ°í ½Í¾îÁúÁöµµ ¸ð¸¨´Ï´Ù. ¸Åȸ Á÷Á¢ Ÿ°ÙÀ» º¯°æÇÒ Çʿ䰡 ¾ø¾îÁø´Ù (¸Þ¼Òµå ÄÝÀ» ÁÙÀÏ ¼ö ÀÖ´Ù) (À¸)·ÎºÎÅÍÀÔ´Ï´Ù. ±×·¯±â À§Çؼ­´Â setTargetReference() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.


<?php
class Foo
{
    
/**
     * @var string ÀÎÈÄ·¹Å©Å¸ÀÇ Å¸°Ù
     */
    
protected $_target 'foo/:bar/:baz.:suffix';

    
/**
     * constructor¡¡ ¡¡
     * @return void
     */
    
public function __construct()
    {
        
$this->_inflector = new Zend_Filter_Inflector();
        
$this->_inflector->setTargetReference($this->_target);
    }

    
/**
     * Å¸°ÙÀ» ¼³Á¤ÇØ ÀÎÈÄ·¹Å©Å¸ÀÇ Å¸°ÙÀ» °»½ÅÇÕ´Ï´Ù
     * 
     * @param  string $target 
     * @return Foo
     */
    
public function setTarget($target)
    {
        
$this->_target $target;
        return 
$this;
    }
}
?>

14.6.4. ÀÎÇ÷¹ Äí¼ÇÀÇ ·ê

¹æ±ÝÀü ¼³¸íÇÑ °Íó·³, Á¤ÀûÀÎ ·ê°ú ÇÊÅ͸¦ »ç¿ëÇÑ ·êÀÇ µÑÀÌ ÀÖ½À´Ï´Ù.

[ÁÖÀÇ] ÁÖÀÇ

ÀÎÈÄ·¹Å©Å¸¿¡ ¸Þ¼Òµå¸¦ Ãß°¡ÇÒ °æ¿ì¿¡ Çϳª¾¿ Ãß°¡Çß´Ù°í ÇØµµ ÇÑ ¹ø¿¡ Ãß°¡Çß´Ù°í ÇØµµ, ±× Â÷·Ê°¡ Áß¿äÇØÁö´Â °Í¿¡ ÁÖÀÇÇսôÙ. º¸´Ù ¼¼¼¼ÇÑ À̸§, ȤÀº ´Ù¸¥ ·ê¸íÀ» Æ÷ÇÔÇÑ À̸§µîÀ» ¸ÕÀú Ãß°¡Çϵµ·Ï(µíÀÌ) ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. ¿¹¸¦ µé¾î, µÎ Ç® 'moduleDir' (¿Í)°ú 'module' ÇÏÁö¸¸ ÀÖ¾úÀ» °æ¿ì,'moduleDir' ÂÊÀÌ module º¸´Ù Àü¿¡ ¾øÀ¸¸é ¾ÈµË´Ï´Ù. ±×·¸´Ù°í ÇÏ´Â °Íµµ 'module' ÇÏ 'moduleDir' ÀÇ ¾È¿¡ Æ÷ÇԵDZ⠶§¹®ÀÔ´Ï´Ù. 'module' (À»)¸¦ 'moduleDir' º¸´Ù Àü¿¡ Ãß°¡Çϸé 'module' ÇÏÁö¸¸ 'moduleDir' ÀÇ ÀϺο¡µµ ¼º³É ÇØ ¹ö·Á, 'Dir' ÀÇ ºÎºÐÀº ÀÎÇ÷¹ Äí¼ÇÀÇ ´ë»óÀ¸·ÎºÎÅÍ ºø³ª°¡ ¹ö¸³´Ï´Ù.

14.6.4.1. Á¤ÀûÀÎ ·ê

Á¤ÀûÀÎ ·êÀº, ´Ü¼øÇÑ ¹®ÀÚ¿­ÀÇ Ä¡È¯À» ½Ç½ÃÇÕ´Ï´Ù. À̰ÍÀº, Ÿ°Ù¾ÈÀÇ, °ÅÀÇ °íÁ¤ÀÌÁö¸¸ °³¹ßÀÚ°¡ º¯°æÇÒ ¼ö ÀÖµµ·Ï ½ÃŰ°í ½ÍÀº ºÎºÐ µî¿¡ »ç¿ëÇÕ´Ï´Ù. setStaticRule() ¸Þ¼Òµå¸¦ »ç¿ëÇϰí, ·êÀÇ ¼³Á¤À̳ª º¯°æÀ» ½Ç½ÃÇÕ´Ï´Ù.


<?php
$inflector 
= new Zend_Filter_Inflector(':script.:suffix');
$inflector->setStaticRule('suffix''phtml');

// ³ªÁß¿¡ º¯°æÇϰڽÀ´Ï´Ù
$inflector->setStaticRule('suffix''php');
?>

Ÿ°Ù°ú °°ÀÌ, Á¤Àû ·êµµ ÂüÁ¶·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, ¸Þ¼Òµå ÄÝÀ» ÇÏÁö ¾Ê°í º¯¼ö¸¦ °»½ÅÇÏ´Â °Í¸¸À¸·Î ·êÀ» º¯°æÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. À̰ÍÀº, Ŭ·¡½º¾È¿¡¼­ ³»ºÎÀûÀ¸·Î ÀÎÈÄ·¹Å©Å¸¸¦ »ç¿ëÇϰí ÀÖ´Â °æ¿ì¿¡ Æí¸®ÇÕ´Ï´Ù. À¯Àú¿¡°Ô Çϳª Çϳª ÀÎÈÄ·¹Å©Å¸¸¦ Ãëµæ½Ãų Çʿ䰡 ¾ø¾îÁý´Ï´Ù. À̰ÍÀ» ½ÇÇöÇϱâ À§Çؼ­ »ç¿ëÇÏ´Â °ÍÀÌ setStaticRuleReference() ¸Þ¼ÒµåÀÔ´Ï´Ù.


<?php
class Foo
{
    
/**
     * @var string »çÇȽº
     */
    
protected $_suffix 'phtml';

    
/**
     * constructor¡¡ ¡¡
     * @return void
     */
    
public function __construct()
    {
        
$this->_inflector = new Zend_Filter_Inflector(':script.:suffix');
        
$this->_inflector->setStaticRuleReference('suffix'$this->_suffix);
    }

    
/**
     * »çÇȽº¸¦ ¼³Á¤ÇØ, ÀÎÈÄ·¹Å©Å¸ÀÇ Á¤Àû ·êÀ» °»½ÅÇÕ´Ï´Ù
     * 
     * @param  string $suffix 
     * @return Foo
     */
    
public function setSuffix($suffix)
    {
        
$this->_suffix $suffix;
        return 
$this;
    }
}
?>

14.6.4.2. Filter Inflector ·ê

Zend_Filter ÀÇ ÇÊÅͱºµµ, ÀÎÈÄ·¹Å©Å¸ÀÇ ·ê·Î¼­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Á¤ÀûÀÎ ·ê°ú °°ÀÌ, ÀÌÂʵµ Ÿ°ÙÀÇ º¯¼ö¿¡ ¹ÙÀÎµå µË´Ï´Ù. Á¤ÀûÀÎ ·ê°ú´Â ´Þ¶ó, º¹¼öÀÇ ÇÊÅÍ¿¡ ÀÇÇÑ ÀÎÇ÷¹ Äí¼ÇÀ» ½Ç½ÃÇϱ⵵ ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÇÊÅÍ´Â Â÷·Ê·Î 󸮵ǹǷÎ, ÃÖÁ¾ÀûÀ¸·Î °¡Áö°í ½ÍÀº µ¥ÀÌÅ͸¦ °í·ÁÇØ ÇÊÅÍÀÇ µî·Ï¼ø¼­¸¦ °áÁ¤Çϵµ·Ï ÇսôÙ.

·êÀ» Ãß°¡ÇÏ·Á¸é ,setFilterRule() (±× º¯¼ö¿¡ ´ëÇÑ ±âÁ¸ÀÇ ·êÀ» ¸ðµÎ µ¡¾²±âÇÕ´Ï´Ù) ȤÀº addFilterRule() (±× º¯¼ö¿¡ ´ëÇÑ ±âÁ¸ÀÇ ·êÀ» º¸°ü À¯ÁöÇØ, »õ·Î¿î ·êÀ» ¸¶Áö¸·À¸·Î Ãß°¡ÇÕ´Ï´Ù) (À»)¸¦ »ç¿ëÇÕ´Ï´Ù. ÇÊÅÍ´Â, ÀÌÇÏÀÇ ¸î°³ÀÇ Çü½Ä¿¡¼­ ÁöÁ¤ÇÕ´Ï´Ù.

  • ¹®ÀÚ¿­. ÇÊÅÍÀÇ Å¬·¡½º¸í, ȤÀº Ŭ·¡½º¸íÀ¸·ÎºÎÅÍ ÇÁ·¹ÇȽº (ÀÎÈÄ·¹Å©Å¸ÀÇ Ç÷¯±× ÀÎ ·Î´õ·Î µî·ÏµÈ °Í. µðÆúÆ®´Â 'Zend_Filter') (À»)¸¦ ¾ø¾Ø ºÎºÐÀÌ µË´Ï´Ù.

  • Filter ¿ÀºêÁ§Æ®. Zend_Filter_Interface (À»)¸¦ ½ÇÀåÇÑ ÀÓÀÇÀÇ ¿ÀºêÁ§Æ®ÀÇ ÀνºÅϽº¸¦ ÇÊÅͷμ­ °Ç³×ÁÙ ¼ö ÀÖ½À´Ï´Ù.

  • ¹è¿­. À§¿¡¼­ ¼³¸íÇÑ ¹®ÀÚ¿­À̳ª ÇÊÅÍ ¿ÀºêÁ§Æ®¸¦ ¹è¿­·Î ÇÑ °ÍÀÔ´Ï´Ù.


<?php
$inflector 
= new Zend_Filter_Inflector(':script.:suffix');

// ·ê·Î¼­ Zend_Filter_Word_CamelCaseToDash ÇÊÅ͸¦ »ç¿ëÇϵµ·Ï(µíÀÌ) ¼³Á¤ÇÕ´Ï´Ù
$inflector->setFilterRule('script''Word_CamelCaseToDash');

// ¹®ÀÚ¿­À» ¼Ò¹®ÀÚ º¯È¯ÇÏ´Â ·êÀ» Ãß°¡ÇÕ´Ï´Ù
$inflector->addFilterRule('script', new Zend_Filter_StringToLower());

// º¹¼öÀÇ ·êÀ» ÀϰýÇØ ÁöÁ¤ÇÕ´Ï´Ù
$inflector->setFilterRule('script', array(
    
'Word_CamelCaseToDash',
    new 
Zend_Filter_StringToLower()
));
?>

14.6.4.3. ¸¹Àº ·êÀ» ÇÑ ¹øÀ¸·Î ¼³Á¤ÇÑ´Ù

ÀϹÝÀûÀ¸·Î, °¢ º¯¼ö¿¡ ´ëÇØ¼­ °³º°ÀûÀ¸·Î ÀÎÈÄ·¹Å©Å¸¸£¸£¸¦ ¼³Á¤ÇÏ´Â °Íº¸´Ùµµ, ÀϰýÇØ ·êÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Â ÆíÀÌ ÆíÇϰÚÁö¿ä. Zend_Filter_Inflector ÀÇ addRules() ¸Þ¼Òµå³ª setRules() ¸Þ¼Òµå¸¦ »ç¿ëÇϸé, Àϰý ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

°¢°¢ÀÇ ¸Þ¼Òµå¿¡´Â, º¯¼ö/·ê ÀÇ Æä¾îÀÇ ¹è¿­À» ÁöÁ¤ÇÕ´Ï´Ù. ·ê¿¡´Â,(¹®ÀÚ¿­, ÇÊÅÍ ¿ÀºêÁ§Æ® ȤÀº ±× ¹è¿­µîÀÇ) ¾î´À Çü½Ä¿¡¼­µµ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.º¯¼ö¸í¿¡´Â Ưº°ÇÑ ±â¹ýÀ» ÀÌ¿ëÇØ °Å±â¿¡ µû¶ó Á¤Àû ·ê°ú ÇÊÅÍ ·êÀ» ¹Ù²ß´Ï´Ù. »ç¿ëÇÏ´Â ±â¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.

  • ':' ÇÁ·¹ÇȽº: ÇÊÅÍ ·ê.

  • ÇÁ·¹ÇȽº ¾øÀ½: Á¤Àû ·ê.

·Ê 14.2. º¹¼öÀÇ ·êÀÇ Àϰý ¼³Á¤


<?php
// Could also use setRules() with this notation:
$inflector->addRules(array(
    
// ÇÊÅÍ ·ê
    
':controller' => array('CamelCaseToUnderscore','StringToLower'),
    
':action'     => array('CamelCaseToUnderscore','StringToLower'),

    
// Á¤ÀûÀÎ ·ê
    
'suffix'      => 'phtml'
));
?>

14.6.5. À¯Æ¿¸®Æ¼ ¸Þ¼Òµå

Zend_Filter_Inflector ÀÇ À¯Æ¿¸®Æ¼ ¸Þ¼Òµå±º¿¡´Â, Ç÷¯±× ÀÎ ·Î´õÀÇ ÃëµæÀ̳ª ¼³Á¤, ·êÀÇ Á¶ÀÛÀ̳ª Ãëµæ, ¿¹¿Ü¸¦ ½½·Î¿ì ÇÒÁö³ª ±× ½Ã±âÀÇ ¼³Á¤À̶ó°í ÇÑ °ÍÀ» ½Ç½ÃÇÒ ¼ö ÀÖ´Â °ÍÀÌ ÀÖ½À´Ï´Ù.

  • setPluginLoader() (Àº)´Â, µ¶ÀÚÀûÀÎ Ç÷¯±× ÀÎ ·Î´õ¸¦ ¼³Á¤ÇØ ±×°ÍÀ» Zend_Filter_Inflector ±×¸®°í »ç¿ëÇÏ°í ½ÍÀº °æ¿ì¿¡ »ç¿ëÇÕ´Ï´Ù. getPluginLoader() (Àº)´Â, ÇöÀç ¼³Á¤µÇ¾î ÀÖ´Â Ç÷¯±× ÀÎ ·Î´õ¸¦ ÃëµæÇÕ´Ï´Ù.

  • setThrowTargetExceptionsOn() (Àº)´Â, ÁöÁ¤ÇÑ Ä¡È¯ ½Äº°ÀÚ°¡ Ÿ°ÙÀ¸·Î ¹ß°ßµÇÁö ¾Ê¾Ò´ø °æ¿ì¿¡ filter() ÇÏÁö¸¸ ¿¹¿Ü¸¦ ½½·Î¿ì ÇÒÁö¸¦ ¼³Á¤ÇÕ´Ï´Ù. µðÆúÆ®¿¡¼­´Â, ¿¹¿Ü´Â ÀÏÀý ½½·Î¿ì µÇÁö ¾Ê½À´Ï´Ù. isThrowTargetExceptionsOn() (Àº)´Â, ÇöÀçÀÇ ¼³Á¤ »óŸ¦ µ¹·ÁÁÝ´Ï´Ù.

  • getRules($spec = null) (Àº)´Â, ¸ðµç º¯¼ö¿¡ µî·ÏµÇ¾î ¸ðµç ·êÀ» µ¹·ÁÁÝ´Ï´Ù. ȤÀº, ÁöÁ¤ÇÑ º¯¼ö¿¡ ´ëÇØ µî·ÏµÇ¾î ÀÖ´Â ·ê¸¸À» µ¹·ÁÁÝ´Ï´Ù.

  • getRule($spec, $index) (Àº)´Â, ÁöÁ¤ÇÑ º¯¼öÀÇ ÇϳªÀÇ ·êÀ» ÃëµæÇÕ´Ï´Ù. À̰ÍÀº, ¾î´À º¯¼ö¿¡ ´ëÇÑ ·êÀ» Á¤ÀÇÇÑ ÇÊÅÍ Ã¼ÀÎÀ¸·ÎºÎÅÍ Æ¯Á¤ÀÇ ÇÊÅ͸¦ ²¨³»°í ½ÍÀº °æ¿ì¿¡ Æí¸®ÇÕ´Ï´Ù. $index (Àº)´Â ÇʼöÀÔ´Ï´Ù.

  • clearRules() (Àº)´Â, ÇöÀç µî·ÏµÇ¾î ÀÖ´Â ·êÀ» ¸ðµÎ Ŭ¸®¾î ÇÕ´Ï´Ù.

14.6.6. Zend_Filter_Inflector (À¸)·ÎÀÇ Zend_Config ÀÇ »ç¿ë¹ý

Zend_Config (À»)¸¦ »ç¿ëÇØ ·êÀ» ¼³Á¤Çϰųª ÇÊÅÍÀÇ ÇÁ·¹ÇȽºÀÇ ÆÐ½º³ª ±× ¿ÜÀÇ ÀÎÈÄ·¹Å©Å¸ »óŸ¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯±â À§Çؼ­´Â,Zend_Config ¿ÀºêÁ§Æ®¸¦ constructor¡¡ ¡¡ ȤÀº setConfig() ¿¡ °Ç³×ÁÝ´Ï´Ù. ¼³Á¤ °¡´ÉÇÑ Ç׸ñÀº ÀÌÇÏ´ë·ÎÀÔ´Ï´Ù.

  • target (Àº)´Â, ÀÎÇ÷¹ Äí¼ÇÀÇ Å¸°ÙÀ» ÁöÁ¤ÇÕ´Ï´Ù.

  • filterPrefixPath (Àº)´Â, ÀÎÈÄ·¹Å©Å¸°¡ »ç¿ëÇÏ´Â ÇÊÅÍÀÇ ÇÁ·¹ÇȽº/ÆÐ½º ÀÇ Æä¾î¸¦ ÁöÁ¤ÇÕ´Ï´Ù.

  • throwTargetExceptionsOn (Àº)´Â, ÀÎÇ÷¹ Äí¼Ç ó¸®ÀÇ µÚ¿¡ ¾ÆÁ÷ ġȯ ½Äº°ÀÚ°¡ ³²¾Æ ÀÖ¾úÀ» °æ¿ì¿¡ ¿¹¿Ü¸¦ ½½·Î¿ì ÇÒÁö¸¦ boolean °ªÀ¸·Î ÁöÁ¤ÇÕ´Ï´Ù.

  • targetReplacementIdentifier (Àº)´Â, Ÿ°Ù ¹®ÀÚ¿­³»¿¡¼­ ġȯ º¯¼ö¸¦ ³ªÅ¸³»±â À§Çؼ­ »ç¿ëÇÏ´Â ¹®ÀÚ¸¦ ÁöÁ¤ÇÕ´Ï´Ù.

  • rules (Àº)´Â, ÀÎÇ÷¹ Äí¼Ç ·êÀÇ ¹è¿­À» ÁöÁ¤ÇÕ´Ï´Ù. °ª, ȤÀº °ªÀÇ ¹è¿­À» Ű·Î ÁöÁ¤ÇØ, addRules() (¿Í)°ú °°Àº Çü½ÄÀÌ µË´Ï´Ù.

·Ê 14.3. Zend_Filter_Inflector (À¸)·ÎÀÇ Zend_Config ÀÇ »ç¿ë¹ý


<?php
// constructor¡¡ ¡¡ À¸·Î
$config    = new Zend_Config($options);
$inflector = new Zend_Filter_Inflector($config);

// È¤Àº setConfig() ±×¸®°í
$inflector = new Zend_Filter_Inflector();
$inflector->setConfig($config);
?>