5.3. Zend_Config_Ini

Zend_Config_Ini (Àº)´Â, Ä£¼÷ÇÑ INI Çü½ÄÀÇ ÆÄÀÏ¿¡ º¸Á¸µÈ ¼³Á¤ µ¥ÀÌÅ͸¦,Zend_Config (À»)¸¦ ÅëÇØ¼­ ¿ÀºêÁ§Æ®ÀÇ ÇÁ·ÓÆÛƼ·Î¼­ Ãë±ÞÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ) ÇÕ´Ï´Ù. ÀÌ INI Çü½ÄÀº, °èÃþÈ­ µÈ ¼³Á¤ µ¥ÀÌÅ͸¦ Ãë±ÞÇÏ´Â °Í, ±×¸®°í ¼½¼Ç°£ÀÇ °è½Â °ü°è¸¦ Ãë±ÞÇÏ´Â °Í¿¡ ƯȭµÇ°í ÀÖ½À´Ï´Ù. ¼³Á¤ µ¥ÀÌÅÍÀÇ °èÃþ ±¸Á¶´Â, ŰÀÇ À̸§À» ´å ȤÀº ÇǸ®¿Àµå (.) ±×¸®°í ´Ü¶ôÁþ´Â °Í¿¡ ÀÇÇØ¼­ Ç¥ÇöÇÕ´Ï´Ù. ´Ù¸¥ ¼½¼ÇÀ» È®ÀåÇÏ´Â µîÀÇ °è½Â °ü°è´Â, ¼½¼Ç¸í¿¡ À̾î ÄÚ·Ð (:) (À»)¸¦, ±×¸®°í ±× ÈÄ¿¡ °è½Â¿øÀÇ ¼½¼Ç¸íÀ» ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î ³ªÅ¸³À´Ï´Ù.

[ÁÖÀÇ] parse_ini_file

Zend_Config_Ini (Àº)´Â,PHP ÀÇ parse_ini_file() ÇÔ¼ö¸¦ »ç¿ëÇϰí ÀÖ½À´Ï´Ù.ÀÌ ¹®¼­¿¡¼­´Â,Zend_Config_Ini °íÀ¯ÀÇ °Åµ¿¿¡ ÁÖÀÇÇսôÙ.¿¹¸¦ µé¸é, Ư¼öÇÑ °ªÀ¸·Î ÇØ¼­ true (ÀÌ)³ª false, yes,no ±×¸®°í null (À»)¸¦ ó¸®ÇÒ ¼ö ÀÖ´Â °Í µîÀÔ´Ï´Ù.

[ÁÖÀÇ] ŰÀÇ ´Ü¶ô ¹®ÀÚ

µðÆúÆ®¿¡¼­´Â, ŰÀÇ ´Ü¶ô ¹®ÀÚ´Â ÇǸ®¿Àµå (.) ÀÔ´Ï´Ù. ±×·¯³ª, À̰ÍÀº º¯°æÇÒ ¼öµµ ÀÖ½À´Ï´Ù.º¯°æÇÏ·Á¸é , Zend_Config_Ini ¿ÀºêÁ§Æ®ÀÇ ÀÛ¼º½Ã¿¡ $config ÀÇ Å° 'nestSeparator' (À»)¸¦ ¼³Á¤ÇÕ´Ï´Ù.¿¹¸¦ µé¾î ÀÌ¿Í °°ÀÌ µË´Ï´Ù.


<?php
require_once 'Zend/Config/Ini.php';
$config['nestSeparator'] = ':';
$config = new Zend_Config_Ini('/path/to/config.ini''staging'$config);

·Ê 5.3. Zend_Config_Ini ÀÇ »ç¿ë¹ý

ÀÌ ¿¹´Â,Zend_Config_Ini (À»)¸¦ »ç¿ëÇØ INI ÆÄÀϷκÎÅÍ ¼³Á¤ µ¥ÀÌÅ͸¦ ÀоîµéÀ̱â À§ÇÑ ±âº»ÀûÀÎ ¹æ¹ýÀ» ¼³¸íÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ ¿¹¿¡¼­´Â, ¿î¿ë ȯ°æÀÇ ¼³Á¤°ú °³¹ß ȯ°æÀÇ ¼³Á¤À» ¾çÂÊ ¸ðµÎ °ü¸®Çϰí ÀÖ½À´Ï´Ù. °³¹ß ȯ°æ¿ëÀÇ ¼³Á¤ µ¥ÀÌÅÍ´Â ¿î¿ë ȯ°æ¿ëÀÇ °Í°ú ¸Å¿ì ºñ½ÁÇϹǷÎ, °³¹ß ȯ°æ¿ëÀÇ ¼½¼ÇÀº ¿î¿ë ȯ°æ¿ëÀÇ ¼½¼ÇÀ» °è½Â½Ã۰í ÀÖ½À´Ï´Ù. À̹ø °æ¿ì¶ó¸é, ¹Ý´ë·Î ¿î¿ë ȯ°æ¿ëÀÇ ¼½¼ÇÀ» °³¹ß ȯ°æ¿ëÀÇ °ÍÀ¸·ÎºÎÅÍ °è½Â½ÃÄѵµ ±¦ÂúÀ» °ÍÀÔ´Ï´Ù. ±×·¯ÇÑÀ¸·ÎºÎÅͶó°í ÇØ ƯÈ÷ »óȲÀÌ º¹ÀâÇÏ°Ô µÇ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ¿©±â¿¡¼­´Â, ´ÙÀ½°ú °°Àº ³»¿ëÀÇ ¼³Á¤ µ¥ÀÌÅͰ¡ /path/to/config.ini ¿¡ Á¸ÀçÇÏ´Â °ÍÀ¸·Î ÇÕ´Ï´Ù.


; ¿î¿ë ȯ°æÀÇ ¼³Á¤ µ¥ÀÌÅÍ
[production]
webhost                  = www.example.com
database.adapter         = pdo_mysql
database.params.host     = db.example.com
database.params.username = dbuser
database.params.password = secret
database.params.dbname   = dbname

; °³¹ß ȯ°æÀÇ ¼³Á¤ µ¥ÀÌÅÍ´Â, ¿î¿ë ȯ°æÀÇ µ¥ÀÌÅ͸¦ °è½ÂÇÑ À§¿¡
; Çʿ信 µû¶ó¼­ °ªÀ» µ¡¾²±âÇÕ´Ï´Ù
[staging : production]
database.params.host     = dev.example.com
database.params.username = devuser
database.params.password = devsecret

´ÙÀ½¿¡, °³¹ßÀÚ°¡ °³¹ß ȯ°æ¿ëÀÇ ¼³Á¤ µ¥ÀÌÅ͸¦ INI ÆÄÀϷκÎÅÍ ÀоîµéÀÌ´Â °ÍÀ» »ý°¢ÇÕ´Ï´Ù. À̰ÍÀº °£´ÜÇÑ ÀÏ·Î, ´ÜÁö INI ÆÄÀϰú ¼½¼ÇÀ» ÁöÁ¤ÇÒ »ÓÀÔ´Ï´Ù.


<?php
require_once 'Zend/Config/Ini.php';

$config = new Zend_Config_Ini('/path/to/config.ini''staging');

echo 
$config->database->params->host;   // "dev.example.com" (¿Í)°ú Ãâ·ÂÇÕ´Ï´Ù
echo $config->database->params->dbname// "dbname" (¿Í)°ú Ãâ·ÂÇÕ´Ï´Ù

[ÁÖÀÇ] ÁÖÀÇ

Ç¥ 5.1. Zend_Config_Ini constructor¡¡ ¡¡ ÀÇ ÆÄ¶ó¹ÌÅÍ

ÆÄ¶ó¹ÌÅÍ ¼³¸í
$filename ÀоîµéÀδ٠INI ÆÄÀÏ.
$section ini ÆÄÀϾÈÀÇ, ÀоîµéÀδ٠[section]. ÀÌ ÆÄ¶ó¹ÌÅ͸¦ null (À¸)·Î Çϸé, ¸ðµç ¼½¼ÇÀ» ÀоîµéÀÔ´Ï´Ù. ¶Ç, ¼½¼Ç¸íÀÇ ¹è¿­À» ÁöÁ¤Çϸé, º¹¼öÀÇ ¼½¼ÇÀ» ÀоîµéÀÔ´Ï´Ù.
$config = false ¼³Á¤ Ç׸ñÀÇ ¹è¿­.ÀÌÇÏÀÇ Å°¸¦ ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù.
  • allowModifications: true (À»)¸¦ ÁöÁ¤Çϸé, ÀоîµéÀÎ ÆÄÀÏÀ» ´ÙÀ½¿¡ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.µðÆúÆ®´Â false ÀÔ´Ï´Ù.

  • nestSeparator: ³×½ºÆ®ÀÇ ´Ü¶ô ¹®Àڷμ­ »ç¿ëÇÏ´Â ¹®ÀÚ¸¦ ¼³Á¤ÇÕ´Ï´Ù.µðÆúÆ®´Â "." ÀÔ´Ï´Ù.