<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/yaf.setup.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'yaf.configuration.php',
    1 => 'Настройка во время выполнения',
    2 => 'Настройка во время выполнения',
  ),
  'up' => 
  array (
    0 => 'yaf.setup.php',
    1 => 'Установка и настройка',
  ),
  'prev' => 
  array (
    0 => 'yaf.installation.php',
    1 => 'Установка',
  ),
  'next' => 
  array (
    0 => 'yaf.constants.php',
    1 => 'Предопределённые константы',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'reference/yaf/ini.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="yaf.configuration" class="section">
 <h2 class="title">Настройка во время выполнения</h2>
 <p class="simpara">
Поведение функций зависит от установок в файле <var class="filename">php.ini</var>.
</p>
 <p class="para">
  <table class="doctable table">
   <caption><strong>Опции настройки Yaf</strong></caption>
   
    <thead>
     <tr>
      <th>Имя</th>
      <th>По умолчанию</th>
      <th>Место изменения</th>
      <th>Список изменений</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td><a href="yaf.configuration.php#ini.yaf.library" class="link">yaf.library</a></td>
      <td class="empty">&nbsp;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
      <td></td>
     </tr>

     <tr>
      <td><a href="yaf.configuration.php#ini.yaf.action-prefer" class="link">yaf.action_prefer</a></td>
      <td>0</td>
      <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
      <td></td>
     </tr>

     <tr>
      <td><a href="yaf.configuration.php#ini.yaf.lowcase-path" class="link">yaf.lowcase_path</a></td>
      <td>0</td>
      <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
      <td></td>
     </tr>

     <tr>
      <td><a href="yaf.configuration.php#ini.yaf.use-spl-autoload" class="link">yaf.use_spl_autoload</a></td>
      <td>0</td>
      <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
      <td></td>
     </tr>

     <tr>
      <td><a href="yaf.configuration.php#ini.yaf.forward-limit" class="link">yaf.forward_limit</a></td>
      <td>5</td>
      <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
      <td></td>
     </tr>

     <tr>
      <td><a href="yaf.configuration.php#ini.yaf.name-suffix" class="link">yaf.name_suffix</a></td>
      <td>1</td>
      <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
      <td></td>
     </tr>

     <tr>
      <td><a href="yaf.configuration.php#ini.yaf.name-separator" class="link">yaf.name_separator</a></td>
      <td class="empty">&nbsp;</td>
      <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
      <td></td>
     </tr>

     <tr>
      <td><a href="yaf.configuration.php#ini.yaf.cache-config" class="link">yaf.cache_config</a></td>
      <td>0</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td></td>
     </tr>

     <tr>
      <td><a href="yaf.configuration.php#ini.yaf.environ" class="link">yaf.environ</a></td>
      <td>product</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td></td>
     </tr>

     <tr>
      <td><a href="yaf.configuration.php#ini.yaf.use-namespace" class="link">yaf.use_namespace</a></td>
      <td>0</td>
      <td><strong><code><a href="info.constants.php#constant.ini-system">INI_SYSTEM</a></code></strong></td>
      <td></td>
     </tr>

    </tbody>
   
  </table>

 </p>

 <p class="para">Краткое разъяснение конфигурационных
директив.</p>

 <p class="para">
  <dl>
   
    <dt id="ini.yaf.library">
     <code class="parameter">yaf.library</code>
     <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
    </dt>
    <dd>
     <p class="para">
      Путь к каталогу, в котором Yaf_loader станет искать глобальную библиотеку.
     </p>
    </dd>
   
   
    <dt id="ini.yaf.action-prefer">
     <code class="parameter">yaf.action_prefer</code>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <p class="para">
      Требуется ли интерпретировать в элементе PATH_INFO путь с единственным сегментом как контроллер или действие.
     </p>
     <p class="para">
      При установке значения On путь интерпретируется как название действия.
     </p>
    </dd>
   
   
    <dt id="ini.yaf.lowcase-path">
     <code class="parameter">yaf.lowcase_path</code>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <p class="para">
      Приводить ли путь к нижнему регистру при автозагрузке классов.
     </p>
    </dd>
   
   
    <dt id="ini.yaf.use-spl-autoload">
     <code class="parameter">yaf.use_spl_autoload</code>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <p class="para">
      При установке значения On автозагрузчик <span class="classname"><a href="class.yaf-loader.php" class="classname">Yaf_Loader</a></span> вернёт <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>,
      если не найдёт класс, и вернёт управление для вызова следующей функции автозагрузки.
     </p>
     <p class="para">
      При установке значения Off автозагрузчик <span class="classname"><a href="class.yaf-loader.php" class="classname">Yaf_Loader</a></span>
      вернёт <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, если не найдёт класс, и сразу прервёт автозагрузку классов с ошибкой.
     </p>
     <blockquote class="note"><p><strong class="note">Замечание</strong>: 
      <p class="para">
       Yaf регистрирует загрузчик классов при создании экземпляра класса
       <span class="classname"><a href="class.yaf-application.php" class="classname">Yaf_Application</a></span>, поэтому остальные
       автозагрузчики, зарегистрированные до инстанциации этого класса,
       запустятся до срабатывания метода <span class="methodname"><a href="yaf-loader.autoload.php" class="methodname">Yaf_Loader::autoload()</a></span>.
      </p>
     </p></blockquote>
     <p class="para">
      Со значением по умолчанию — Off —
      метод <span class="methodname"><a href="yaf-loader.autoload.php" class="methodname">Yaf_Loader::autoload()</a></span> возвращает <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> независимо от результата поиска класса.
     </p>
    </dd>
   
   
    <dt id="ini.yaf.forward-limit">
     <code class="parameter">yaf.forward_limit</code>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <p class="para">
      Предельное количество перенаправлений. Значение по умолчанию — 5:
      предельная глубина стека перенаправлений.
     </p>
     <p class="para">
      Ограничение глубины стека защищает от бесконечного рекурсивного вызова метода
      <span class="methodname"><a href="yaf-controller-abstract.forward.php" class="methodname">Yaf_Controller_Abstract::forward()</a></span>.
     </p>
    </dd>
   
   
    <dt id="ini.yaf.name-suffix">
     <code class="parameter">yaf.name_suffix</code>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <p class="para">
      При установке значения On автозагрузчик Yaf_Loader распознаёт MVC-классы
      по суффиксу в названии класса.
     </p>
     <p class="para">
      При установке значения Off автозагрузчик Yaf_Loader опирается на префикс в названии класса.
     </p>
    </dd>
   
   
    <dt id="ini.yaf.name-separator">
     <code class="parameter">yaf.name_separator</code>
     <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
    </dt>
    <dd>
     <p class="para">
      Непустое значение разделяет название класса на две части: префикс и суффикс.
      Автозагрузчик Yaf_Loader распознает MVC-роль класса по суффиксу, а название MVC-компонента — по префиксу.
     </p>
     <p class="para">
      С разделителем  &quot;_&quot; автозагрузчик Yaf_Loader распознает название Index_Controller
      как класс контроллера, а IndexController — как стандартный класс.
     </p>
    </dd>
   
   
    <dt id="ini.yaf.cache-config">
     <code class="parameter">yaf.cache_config</code>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <p class="para">
      При установке значения On и передаче в конструктор класса <span class="classname"><a href="class.yaf-application.php" class="classname">Yaf_Application</a></span>
      аргумента с путём к конфигурационному ini-файлу результат компиляции
      ini-файла кешируется в PHP-процессе.
      <blockquote class="note"><p><strong class="note">Замечание</strong>: 
       <p class="para">
        Модуль Yaf проверяет время модификации файла конфигурации и перекомпилирует ini-файл,
        если значение mtime изменилось с момента последней компиляции.
       </p>
      </p></blockquote>
      <div class="warning"><strong class="warning">Внимание</strong>
       <p class="para">
        Модуль Yaf обрабатывает путь к ini-файлу как ключ закешированной записи,
        поэтому лучше указывать полные, абсолютные пути,
        чтобы два приложения, которые работают с ini-файлами с одинаковыми названиями, но разным содержанием,
        не конфликтовали между собой.
       </p>
      </div>
     </p>
    </dd>
   
   
    <dt id="ini.yaf.environ">
     <code class="parameter">yaf.environ</code>
     <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
    </dt>
    <dd>
     <p class="para">
      Значение по умолчанию — &quot;product&quot;. По значению директивы модуль Yaf
      определяет, какую секцию конфигурационного ini-файла требуется загрузить.
     </p>
     <p class="para">
      При установке значения &quot;product&quot; модуль Yaf считает ini-файл, путь к которому передали в первый параметр конструктора класса
      <span class="classname"><a href="class.yaf-application.php" class="classname">Yaf_Application</a></span>, и загрузит секцию с названием &quot;product&quot; как окончательную конфигурацию приложения
      <span class="classname"><a href="class.yaf-application.php" class="classname">Yaf_Application</a></span>.
     </p>
    </dd>
   

   
    <dt id="ini.yaf.use-namespace">
     <code class="parameter">yaf.use_namespace</code>
     <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
    </dt>
    <dd>
     <p class="para">
      При установке значения On названия классов модуля Yaf строятся
      по правилам именования классов в пространствах имён.
     </p>
     <p class="para">
      Например:
      <div class="example-contents screen">
<div class="cdata"><pre>
Yaf_Route_Rewrite =&gt; \Yaf\Route\Rewrite
Yaf_Request_Http  =&gt; \Yaf\Request\Http
</pre></div>
      </div>
      Исключение — отдельные классы наподобие
      <span class="classname"><a href="class.yaf-controller-abstract.php" class="classname">Yaf_Controller_Abstract</a></span>.
      Последний компонент названия — ключевое слово в PHP,
      которое нельзя указывать как название класса,
      поэтому класс получит следующее название:
      <div class="example-contents screen">
<div class="cdata"><pre>
Yaf_Controller_Abstract =&gt; \Yaf\Controller_Abstract
Yaf_Route_Static =&gt; \Yaf\Route_Static
</pre></div>
      </div>
     </p>
    </dd>
   

  </dl>
 </p>
</div><?php manual_footer($setup); ?>