<?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 => 'tr',
  ),
  'this' => 
  array (
    0 => 'class.yaf-config-ini.php',
    1 => 'Yaf_Config_Ini',
    2 => 'The Yaf_Config_Ini class',
  ),
  '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' => 'en',
    '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">The Yaf_Config_Ini class</h1>
 

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


  <div class="section" id="yaf-config-ini.intro">
   <h2 class="title">Giriş</h2>
   <p class="simpara">
    <span class="classname"><strong class="classname">Yaf_Config_Ini</strong></span> enables developers to store
    configuration data in a familiar INI format and read it in the
    application by using nested object property syntax. The INI format is
    specialized to provide both the ability to have a hierarchy of
    configuration data keys and inheritance between configuration data
    sections. Configuration data hierarchies are supported by separating
    the keys with the dot or period character (&quot;<code class="literal">.</code>&quot;). A
    section may extend or inherit from another section by following the
    section name with a colon character (&quot;<code class="literal">:</code>&quot;) and the
    name of the section from which data are to be inherited.
   </p>
   <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
    <p class="simpara">
     <span class="classname"><strong class="classname">Yaf_Config_Ini</strong></span> utilizes the
     <span class="function"><a href="function.parse-ini-file.php" class="function">parse_ini_file()</a></span> PHP function. Please review this
     documentation to be aware of its specific behaviors, which propagate
     to <span class="classname"><strong class="classname">Yaf_Config_Ini</strong></span>, such as how the special
     values of &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;, and &quot;<strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong>&quot; are handled.
    </p>
   </p></blockquote>
   <div class="tip"><strong class="tip">İpucu</strong>
    <p class="simpara">
     <span class="classname"><strong class="classname">Yaf_Config_Ini</strong></span> parses the configuration file
     on every request. If an application manages a large amount of
     (mostly static) configuration, consider the
     <a href="book.yaconf.php" class="link">Yaconf</a> extension instead: it keeps
     configuration in shared memory across the whole PHP lifecycle, so it
     is parsed only once and can be accessed much more efficiently.
     Yaconf understands the very same INI syntax — keys separated by dots,
     and inheritance between sections through
     &quot;<code class="literal">[section : parent]</code>&quot; — so the existing
     <var class="filename">application.ini</var> can be served by Yaconf as-is;
     only the way it is passed to
     <span class="methodname"><a href="yaf-application.construct.php" class="methodname">Yaf_Application::__construct()</a></span> changes (see the
     tip in <a href="yaf.appconfig.php" class="link">Application
     Configuration</a>).
    </p>
   </div>
  </div>


  <div class="section" id="yaf-config-ini.synopsis">
   <h2 class="title">Sınıf Sözdizimi</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">/* Özellikler */</div>

    
    <div class="classsynopsisinfo classsynopsisinfo_comment">/* Yöntemler */</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"><a href="yaf-config-ini.get.php" class="methodname">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">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"><a href="yaf-config-ini.set.php" class="methodname">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-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">/* Miras alınan yöntemler */</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">Özellikler</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">Örnekler</h2>
  <div class="example" id="example-1">
   <p><strong>Örnek 1 <span class="function"><strong>Yaf_Config_Ini()</strong></span>example</strong></p>
   <div class="example-contents"><p>
    This example illustrates a basic use of Yaf_Config_Ini for loading
    configuration data from an INI file. In this example there are
    configuration data for both a production system and for a staging system.
    Because the staging system configuration data are very similar to those
    for production, the staging section inherits from the production section.
    In this case, the decision is arbitrary and could have been written
    conversely, with the production section inheriting from the staging
    section, though this may not be the case for more complex situations.
    Suppose, then, that the following configuration data are contained in
    /path/to/config.ini:
   </p></div>
   <div class="example-contents">
<div class="inicode"><pre class="inicode">; Production site configuration data
[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 site configuration data inherits from production and
; overrides values as necessary
[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">'/path/to/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>
Yukarıdaki örnek şuna benzer bir çıktı üretir:</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>İçindekiler</h2><ul class="chunklist chunklist_reference"><li><a href="yaf-config-ini.construct.php">Yaf_Config_Ini::__construct</a> — Constructor of Yaf_Config_Ini</li><li><a href="yaf-config-ini.count.php">Yaf_Config_Ini::count</a> — Count configuration entries</li><li><a href="yaf-config-ini.current.php">Yaf_Config_Ini::current</a> — Get current entry value</li><li><a href="yaf-config-ini.get.php">Yaf_Config_Ini::get</a> — Retrieve a configuration value</li><li><a href="yaf-config-ini.isset.php">Yaf_Config_Ini::__isset</a> — Check if a key exists</li><li><a href="yaf-config-ini.key.php">Yaf_Config_Ini::key</a> — Get current entry key</li><li><a href="yaf-config-ini.next.php">Yaf_Config_Ini::next</a> — Advance to next entry</li><li><a href="yaf-config-ini.offsetexists.php">Yaf_Config_Ini::offsetExists</a> — Check if a key exists (ArrayAccess)</li><li><a href="yaf-config-ini.offsetget.php">Yaf_Config_Ini::offsetGet</a> — Get a value (ArrayAccess)</li><li><a href="yaf-config-ini.offsetset.php">Yaf_Config_Ini::offsetSet</a> — Set a configuration value (ArrayAccess)</li><li><a href="yaf-config-ini.offsetunset.php">Yaf_Config_Ini::offsetUnset</a> — Remove a key (ArrayAccess)</li><li><a href="yaf-config-ini.readonly.php">Yaf_Config_Ini::readonly</a> — Check if configuration is read-only</li><li><a href="yaf-config-ini.rewind.php">Yaf_Config_Ini::rewind</a> — Reset iterator to first entry</li><li><a href="yaf-config-ini.set.php">Yaf_Config_Ini::set</a> — Set a configuration value</li><li><a href="yaf-config-ini.toarray.php">Yaf_Config_Ini::toArray</a> — Export configuration as array</li><li><a href="yaf-config-ini.valid.php">Yaf_Config_Ini::valid</a> — Check if current position is valid</li></ul>
</div>
<?php manual_footer($setup); ?>