<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.yaf.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'class.yaf-config-ini.php',
    1 => 'Yaf_Config_Ini',
    2 => 'La clase Yaf_Config_Ini',
  ),
  'up' => 
  array (
    0 => 'book.yaf.php',
    1 => 'Yaf',
  ),
  'prev' => 
  array (
    0 => 'yaf-config-abstract.toarray.php',
    1 => 'Yaf_Config_Abstract::toArray',
  ),
  'next' => 
  array (
    0 => 'yaf-config-ini.construct.php',
    1 => 'Yaf_Config_Ini::__construct',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/yaf/yaf-config-ini.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/class.yaf-config-ini.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="class.yaf-config-ini" class="reference">

 <h1 class="title">La clase Yaf_Config_Ini</h1>
 

 <div class="partintro"><p class="verinfo">(Yaf &gt;=1.0.0)</p>

  
  <div class="section" id="yaf-config-ini.intro">
   <h2 class="title">Introducción</h2>
   <p class="simpara">
    <span class="classname"><strong class="classname">Yaf_Config_Ini</strong></span> permite a los desarrolladores
    almacenar la información de configuración en el familiar formato INI y
    leerla en la aplicación mediante la sintaxis de propiedades de objeto
    anidadas. El formato INI soporta jerarquías de claves de configuración
    (separadas por punto, &quot;<code class="literal">.</code>&quot;) y herencia entre secciones
    (con &quot;<code class="literal">:</code>&quot; seguido del nombre de la sección padre).
   </p>
   <blockquote class="note"><p><strong class="note">Nota</strong>: 
    <p class="simpara">
     <span class="classname"><strong class="classname">Yaf_Config_Ini</strong></span> utiliza la función
     <span class="function"><a href="function.parse-ini-file.php" class="function">parse_ini_file()</a></span> de PHP. Consulte su documentación
     para conocer sus comportamientos específicos, que se propagan a
     <span class="classname"><strong class="classname">Yaf_Config_Ini</strong></span>, como el manejo de los valores
     especiales &quot;<strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>&quot;, &quot;<strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>&quot;, &quot;yes&quot;, &quot;no&quot; y &quot;<strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>&quot;.
    </p>
   </p></blockquote>
   <div class="tip"><strong class="tip">Sugerencia</strong>
    <p class="simpara">
     <span class="classname"><strong class="classname">Yaf_Config_Ini</strong></span> analiza el fichero de configuración
     en cada petición. Si una aplicación gestiona una gran cantidad de
     configuración (mayormente estática), conviene considerar la extensión
     <a href="book.yaconf.php" class="link">Yaconf</a>: mantiene la configuración en
     memoria compartida durante todo el ciclo de vida de PHP, de modo que solo
     se analiza una vez y se accede de forma mucho más eficiente. Yaconf
     entiende exactamente la misma sintaxis INI (claves separadas por puntos y
     herencia entre secciones mediante
     &quot;<code class="literal">[section : parent]</code>&quot;), por lo que el
     <var class="filename">application.ini</var> existente puede ser servido por
     Yaconf tal cual; solo cambia la forma de pasarlo a
     <span class="methodname"><a href="yaf-application.construct.php" class="methodname">Yaf_Application::__construct()</a></span> (ver el consejo en
     <a href="yaf.appconfig.php" class="link">Application Configuration</a>).
    </p>
   </div>
  </div>
  

  <div class="section" id="yaf-config-ini.synopsis">
   <h2 class="title">Sinopsis de la clase</h2>

   
   <div class="classsynopsis">
    <span class="ooclass"><strong class="classname"></strong></span>

    
    <div class="classsynopsisinfo">
     <span class="ooclass">
      <span class="modifier">class</span> <strong class="classname">Yaf_Config_Ini</strong>
     </span>

     <span class="ooclass">
      <span class="modifier">extends</span>
       <a href="class.yaf-config-abstract.php" class="classname">Yaf_Config_Abstract</a>
     </span>

     <span class="oointerface"><span class="modifier">implements</span> 
       <a href="class.iterator.php" class="interfacename">Iterator</a></span><span class="oointerface">,  <a href="class.arrayaccess.php" class="interfacename">ArrayAccess</a></span><span class="oointerface">,  <a href="class.countable.php" class="interfacename">Countable</a></span> {</div>
    
    <div class="classsynopsisinfo classsynopsisinfo_comment">/* Propiedades */</div>

    <div class="classsynopsisinfo classsynopsisinfo_comment">/* Métodos */</div>
    <div class="constructorsynopsis dc-description">
   <span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-ini.construct.php" class="methodname">__construct</a></span>(<span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$config_file</code></span>, <span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$section</code><span class="initializer"> = NULL</span></span>)</div>

    <div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-ini.count.php" class="methodname">count</a></span>(): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-ini.current.php" class="methodname">current</a></span>(): <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><strong>get</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$name</code><span class="initializer"> = NULL</span></span>): <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-ini.isset.php" class="methodname">__isset</a></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$name</code></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-ini.key.php" class="methodname">key</a></span>(): <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-ini.next.php" class="methodname">next</a></span>(): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-ini.offsetexists.php" class="methodname">offsetExists</a></span>(<span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$name</code></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-ini.offsetget.php" class="methodname">offsetGet</a></span>(<span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$name</code></span>): <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-ini.offsetset.php" class="methodname">offsetSet</a></span>(<span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$name</code></span>, <span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$value</code></span>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-ini.offsetunset.php" class="methodname">offsetUnset</a></span>(<span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$name</code></span>): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-ini.readonly.php" class="methodname">readonly</a></span>(): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-ini.rewind.php" class="methodname">rewind</a></span>(): <span class="type"><a href="language.types.void.php" class="type void">void</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><strong>set</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$name</code></span>, <span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$value</code></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-ini.toarray.php" class="methodname">toArray</a></span>(): <span class="type"><a href="language.types.array.php" class="type array">array</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-ini.valid.php" class="methodname">valid</a></span>(): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>


    <div class="classsynopsisinfo classsynopsisinfo_comment">/* Métodos heredados */</div>
    <div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-abstract.get.php" class="methodname">Yaf_Config_Abstract::get</a></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$name</code><span class="initializer"> = NULL</span></span>): <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">abstract</span> <span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-abstract.readonly.php" class="methodname">Yaf_Config_Abstract::readonly</a></span>(): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">abstract</span> <span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-abstract.set.php" class="methodname">Yaf_Config_Abstract::set</a></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$name</code></span>, <span class="methodparam"><span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$value</code></span>): <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span></div>
<div class="methodsynopsis dc-description"><span class="modifier">public</span> <span class="modifier">function</span> <span class="methodname"><a href="yaf-config-abstract.toarray.php" class="methodname">Yaf_Config_Abstract::toArray</a></span>(): <span class="type"><a href="language.types.array.php" class="type array">array</a></span></div>


   }</div>
   

  </div>

  
  <div class="section" id="yaf-config-ini.props">
   <h2 class="title">Propiedades</h2>
   <dl>
    
     <dt id="yaf-config-ini.props.config"><var class="varname">_config</var></dt>
     <dd>
      <p class="para"/>
     </dd>
    
    
     <dt id="yaf-config-ini.props.readonly"><var class="varname">_readonly</var></dt>
     <dd>
      <p class="para"/>
     </dd>
    
   </dl>
  </div>
  

  <div class="section">
   <h2 class="title">Ejemplos</h2>
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Ejemplo de <span class="function"><strong>Yaf_Config_Ini()</strong></span></strong></p>
    <div class="example-contents"><p>
     Este ejemplo ilustra el uso básico de la clase Yaf_Config_Ini para cargar
     la información de configuración desde un fichero INI. En este ejemplo existe
     información de configuración para el sistema de producción y el sistema de pruebas (staging).
     Ya que la información de configuración del sistema de pruebas es similar a la
     de producción, la sección de pruebas hereda de la sección de producción.
     En este caso, la decisión es arbitraria y podría haber sido escrito
     a la inversa, con la sección de producción heredando de la sección
     de pruebas, aunque este puede no ser el caso para situaciones más complejas.
     Suponga que la información de configuración siguiente está contenida en
     /ruta/a/config.ini:
    </p></div>
    <div class="example-contents">
<div class="inicode"><pre class="inicode">; Información de configuración del sitio de producción
[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

; La información de configuración del sitio de pruebas hereda del de producción y
; sobrescribe los valores según sea necesario
[staging : production]
database.params.host     = dev.example.com
database.params.username = devuser
database.params.password = devsecret</pre>
</div>
    </div>

    <div class="example-contents">
<div class="phpcode"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php
$config </span><span style="color: #007700">= new </span><span style="color: #0000BB">Yaf_Config_Ini</span><span style="color: #007700">(</span><span style="color: #DD0000">'/ruta/a/config.ini'</span><span style="color: #007700">, </span><span style="color: #DD0000">'staging'</span><span style="color: #007700">);

</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$config</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">database</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">params</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">host</span><span style="color: #007700">);
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$config</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">database</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">params</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">dbname</span><span style="color: #007700">);
</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$config</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get</span><span style="color: #007700">(</span><span style="color: #DD0000">"database.params.username"</span><span style="color: #007700">));
</span><span style="color: #0000BB">?&gt;</span></code></pre></div>
    </div>

    <div class="example-contents"><p>Resultado del ejemplo anterior
es similar a:</p></div>
    <div class="example-contents screen">
<div class="cdata"><pre>
string(15) &quot;dev.example.com&quot;
string(6) &quot;dbname&quot;
string(7) &quot;devuser&quot;
</pre></div>
    </div>
   </div>
  </div>

 </div>

 














































































































<h2>Tabla de contenidos</h2><ul class="chunklist chunklist_reference"><li><a href="yaf-config-ini.construct.php">Yaf_Config_Ini::__construct</a> — Constructor de Yaf_Config_Ini</li><li><a href="yaf-config-ini.count.php">Yaf_Config_Ini::count</a> — Contar todos los elementos en Yaf_Config.ini</li><li><a href="yaf-config-ini.current.php">Yaf_Config_Ini::current</a> — Recuperar el valor actual</li><li><a href="yaf-config-ini.get.php">Yaf_Config_Ini::__get</a> — Recuperar un elemento</li><li><a href="yaf-config-ini.isset.php">Yaf_Config_Ini::__isset</a> — Determinar si existe una clave</li><li><a href="yaf-config-ini.key.php">Yaf_Config_Ini::key</a> — Buscar la clave del elemento actual</li><li><a href="yaf-config-ini.next.php">Yaf_Config_Ini::next</a> — Avanzar el puntero interno</li><li><a href="yaf-config-ini.offsetexists.php">Yaf_Config_Ini::offsetExists</a> — El prop&oacute;sito de offsetExists</li><li><a href="yaf-config-ini.offsetget.php">Yaf_Config_Ini::offsetGet</a> — El prop&oacute;sito de offsetGet</li><li><a href="yaf-config-ini.offsetset.php">Yaf_Config_Ini::offsetSet</a> — El prop&oacute;sito de offsetSet</li><li><a href="yaf-config-ini.offsetunset.php">Yaf_Config_Ini::offsetUnset</a> — El prop&oacute;sito de offsetUnset</li><li><a href="yaf-config-ini.readonly.php">Yaf_Config_Ini::readonly</a> — El prop&oacute;sito de readonly</li><li><a href="yaf-config-ini.rewind.php">Yaf_Config_Ini::rewind</a> — El prop&oacute;sito de rewind</li><li><a href="yaf-config-ini.set.php">Yaf_Config_Ini::__set</a> — El prop&oacute;sito de __set</li><li><a href="yaf-config-ini.toarray.php">Yaf_Config_Ini::toArray</a> — Devuelve la configuraci&oacute;n como un array PHP</li><li><a href="yaf-config-ini.valid.php">Yaf_Config_Ini::valid</a> — El prop&oacute;sito de valid</li></ul>
</div>
<?php manual_footer($setup); ?>