<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<sect1 id="zend.cache.backends">
    <title>Бэкэнды Zend_Cache</title>
    <para>
        Есть два типа бэкэндов: стандартные и расширенные. Расширенные
        предоставляют больше функциональных возможностей.
    </para>
    <sect2 id="zend.cache.backends.file">
        <title>Zend_Cache_Backend_File</title>
        <para>
            Этот расширенный бэкэнд хранит записи кэша в файлах (в выбранной
            директории).
        </para>
        <para>
            Доступные опции:
        </para>
        <table id="zend.cache.backends.file.table">
            <title>Опции Zend_Cache_Backend_File</title>
            <tgroup cols="4">
                 <thead>
                     <row>
                         <entry>Опция</entry>
                         <entry>Тип данных</entry>
                         <entry>Значение по умолчанию</entry>
                         <entry>Описание</entry>
                     </row>
                 </thead>
                 <tbody>
                      <row>
                          <entry><emphasis>cache_dir</emphasis></entry>
                          <entry><type>String</type></entry>
                          <entry>'<filename>/tmp/</filename>'</entry>
                          <entry>
                              Директория, в которой хранятся файлы кэша
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>file_locking</emphasis></entry>
                          <entry><type>Boolean</type></entry>
                          <entry><constant>TRUE</constant></entry>
                          <entry>
                            Включает/отключает блокировку файлов. Позволяет
                            избежать искажения данных кэша в плохих условиях, но
                            это не поможет при многопоточном веб-сервере или
                            файловой системе <acronym>NFS</acronym>...
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>read_control</emphasis></entry>
                          <entry><type>Boolean</type></entry>
                          <entry><constant>TRUE</constant></entry>
                          <entry>
                            Включает/отключает контроль чтения. Если включен,
                            то в файл кэша добавляется контрольный ключ и этот
                            ключ сравнивается с другим, вычисляемым после
                            чтения.
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>read_control_type</emphasis></entry>
                          <entry><type>String</type></entry>
                          <entry>'crc32'</entry>
                          <entry>
                            Тип контроля чтения (только если включен
                            readControl). Возможные значения: 'md5' (лучший, но
                            самый медленный),
                            'crc32' (немного менее безопасный,
                            но более быстрый, лучший выбор),
                            'adler32' (новая альтернатива, быстрее, чем crc32),
                            'strlen' для контроля только по длине (самый
                            быстрый).
                        </entry>
                      </row>
                      <row>
                          <entry><emphasis>hashed_directory_level</emphasis></entry>
                          <entry><type>Integer</type></entry>
                          <entry>0</entry>
                          <entry>
                              Уровень структуры хэшированного каталога:
                             0 означает "нет структуры
                             хэшированного каталога",
                             1 — "один уровень каталога",
                             2 — "два уровня"... Эта опция ускорит
                             кэширование только если у вас тысячи файлов кэша.
                             Только сравнение может помочь вам выбрать
                             оптимальное для вас значение. Возможно,
                             1 или 2 будут хорошими
                             значениями для начала.
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>hashed_directory_umask</emphasis></entry>
                          <entry><type>Integer</type></entry>
                          <entry>0700</entry>
                          <entry>
                              Маска режима создания файлов для структуры
                              хэшированного каталога.
                        </entry>
                      </row>
                      <row>
                          <entry><emphasis>file_name_prefix</emphasis></entry>
                          <entry><type>String</type></entry>
                          <entry>'zend_cache'</entry>
                          <entry>
                              Префикс для файлов кэша. Будьте осторожны с этой
                              опцией, поскольку слишком общее значение в
                              системной директории для кэша (например,
                              <filename>/tmp</filename>)
                              может привести к катастрофическим последствиям при
                              очищении кэша.
                        </entry>
                      </row>
                      <row>
                          <entry><emphasis>cache_file_umask</emphasis></entry>
                          <entry><type>Integer</type></entry>
                          <entry>0700</entry>
                          <entry>
                              umask для файлов кэша
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>metatadatas_array_max_size</emphasis></entry>
                          <entry><type>Integer</type></entry>
                          <entry>100</entry>
                          <entry>
                              Внутренний максимальный размер для массива
                              метаданных (не изменяйте это значение если только
                              не знаете, что делаете)
                          </entry>
                      </row>
                  </tbody>
              </tgroup>
          </table>
    </sect2>
    <sect2 id="zend.cache.backends.sqlite">
        <title>Zend_Cache_Backend_Sqlite</title>
        <para>
            Этот расширенный бэкэнд хранит записи кэша в базе данных SQLite.
        </para>
        <para>
            Доступные опции:
        </para>
        <table id="zend.cache.backends.sqlite.table">
            <title>Опции Zend_Cache_Backend_Sqlite</title>
            <tgroup cols="4">
                 <thead>
                     <row>
                         <entry>Опция</entry>
                         <entry>Тип данных</entry>
                         <entry>Значение по умолчанию</entry>
                         <entry>Описание</entry>
                     </row>
                 </thead>
                 <tbody>
                      <row>
                          <entry><emphasis>cache_db_complete_path</emphasis> (обязательный)</entry>
                          <entry><type>String</type></entry>
                          <entry><constant>NULL</constant></entry>
                          <entry>
                              Полный путь (с именем файла) к базе данных SQLite.
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>automatic_vacuum_factor</emphasis></entry>
                          <entry><type>Integer</type></entry>
                          <entry>10</entry>
                          <entry>
                              Отклочение/настройка процесса автоматической
                              чистки. Автоматическая чистка дефрагментирует
                              файл данных (и делает его меньше) при вызове
                              методов <methodname>clean()</methodname>
                              и <methodname>delete()</methodname>:
                              0 - автоматическая чистка отключена;
                              1 - систематическая чистка (при каждом вызове
                              методов <methodname>delete()</methodname> или
                              <methodname>clean()</methodname>);
                              x (целое число больше 1) - автоматическая чистка
                              производится случайным образом 1 раз на x вызовов
                              методов <methodname>clean()</methodname>
                              и <methodname>delete()</methodname>.
                          </entry>
                      </row>
                  </tbody>
              </tgroup>
          </table>
    </sect2>
    <sect2 id="zend.cache.backends.memcached">
        <title>Zend_Cache_Backend_Memcached</title>
        <para>
            Этот расширенный бэкэнд хранит записи кэша в сервере memcached.
            <ulink url="http://www.danga.com/memcached/">memcached</ulink> —
            высокопроизводительная распределенная система кэширования объектов
            в памяти. Для того, чтобы использовать этот бэкэнд, вам нужны
            установленные демон memcached и <ulink url="http://pecl.php.net/package/memcache">расширение PECL для memcached</ulink>.
        </para>
        <para>
            Будьте осторожны: на данный момент теги для этого бэкэнда
            не поддерживаются, то же самое с аргументом
            "doNotTestCacheValidity=true".
        </para>
        <para>
            Доступные опции:
        </para>
        <table id="zend.cache.backends.memcached.table">
            <title>Опции Zend_Cache_Backend_Memcached</title>
            <tgroup cols="4">
                 <thead>
                     <row>
                        <entry>Опция</entry>
                        <entry>Тип данных</entry>
                        <entry>Значение по умолчанию</entry>
                        <entry>Описание</entry>
                     </row>
                 </thead>
                 <tbody>
                      <row>
                          <entry><emphasis>servers</emphasis></entry>
                          <entry><type>Array</type></entry>
                          <entry>
                              array(array('host' => 'localhost', 'port' => 11211, 'persistent' => true, 'weight' => 1,
                              'timeout' => 5, 'retry_interval' => 15, 'status' => true, 'failure_callback' => '' ))
                          </entry>
                          <entry>
                              Массив серверов memcached; каждый сервер описан
                              ассоциативным массивом:
                              'host' => (string) : имя сервера memcached,
                              'port' => (int) : порт сервера memcached,
                              'persistent' => (bool) : использовать или нет
                              постоянное соединение с сервером,
                              'weight' => (int) : вес сервера memcached,
                              'timeout' => (int) : таймаут сервера memcached,
                              'retry_interval' => (int) : интервал между повторными попытками,
                              'status' => (bool) : статус сервера memcached,
                              'failure_callback' => (callback) : обратный вызов сервера memcached
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>compression</emphasis></entry>
                          <entry><type>Boolean</type></entry>
                          <entry><constant>FALSE</constant></entry>
                          <entry>
                             <constant>TRUE</constant>, если вы хотите использовать
                             компрессию "на лету"
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>compatibility</emphasis></entry>
                          <entry><type>Boolean</type></entry>
                          <entry><constant>FALSE</constant></entry>
                          <entry>
                             <constant>TRUE</constant>, если нужно включить режим
                             совместимости со старыми серверами и расширениями
                             memcache
                          </entry>
                      </row>
                  </tbody>
              </tgroup>
          </table>
    </sect2>
    <sect2 id="zend.cache.backends.apc">
        <title>Zend_Cache_Backend_Apc</title>
        <para>
            Этот расширенный бэкэнд хранит записи кэша в совместно используемой
            памяти через расширение
            <ulink url="http://pecl.php.net/package/APC">APC</ulink>
            (Alternative <acronym>PHP</acronym> Cache — альтернативный
            кэш <acronym>PHP</acronym>), которое, разумеется, необходимо
            установить для использования этого бэкэнда.
        </para>
        <para>
            Будьте осторожны: на данный момент теги для этого бэкэнда
            не поддерживаются, то же самое и с аргументом
            "doNotTestCacheValidity=true".
        </para>
        <para>
            Нет специальных опций для этого бэкэнда.
        </para>
    </sect2>
    <sect2 id="zend.cache.backends.xcache">
        <title>Zend_Cache_Backend_Xcache</title>
        <para>
            Этот бэкэнд хранит записи кэша в совместно используемой
            памяти через расширение
            <ulink url="http://xcache.lighttpd.net/">XCache</ulink>, которое
            должно быть установлено для использования данного бэкэнда.
        </para>
        <para>
            Будьте осторожны: на данный момент теги для этого бэкэнда
            не поддерживаются, то же самое и с аргументом
            "doNotTestCacheValidity=true".
        </para>
        <para>
            Доступные опции:
        </para>
        <table id="zend.cache.backends.xcache.table">
            <title>Опции Zend_Cache_Backend_Xcache</title>
            <tgroup cols="4">
                 <thead>
                     <row>
                         <entry>Опция</entry>
                         <entry>Тип данных</entry>
                         <entry>Значение по умолчанию</entry>
                         <entry>Описание</entry>
                     </row>
                 </thead>
                 <tbody>
                      <row>
                          <entry><emphasis>user</emphasis></entry>
                          <entry><type>String</type></entry>
                          <entry><constant>NULL</constant></entry>
                          <entry>
                              <filename>xcache.admin.user</filename>,
                              необходима для метода
                              <methodname>clean()</methodname>
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>password</emphasis></entry>
                          <entry><type>String</type></entry>
                          <entry><constant>NULL</constant></entry>
                          <entry>
                              <filename>xcache.admin.pass</filename> - пароль
                              в незашифрованном виде,
                              необходим для метода
                              <methodname>clean()</methodname>
                          </entry>
                      </row>
                  </tbody>
              </tgroup>
          </table>
    </sect2>
    <sect2 id="zend.cache.backends.platform">
        <title>Zend_Cache_Backend_ZendPlatform</title>
        <para>
            Этот бэкэнд использует <acronym>API</acronym>
            <ulink url="http://www.zend.com/products/platform">Zend
            Platform</ulink> для кэширования контента. Естетственно,
            использование этого бэкэнда требует наличия установленного Zend
            Platform.
        </para>
        <para>
            Этот бэкэнд поддерживает теги, но не поддерживает режим очищения
            <constant>CLEANING_MODE_NOT_MATCHING_TAG</constant>.
        </para>
        <para>
            Указывайте этот бэкэнд, используя разделитель слов '-', '.', ' ',
            или '_' между словами 'Zend' и 'Platform', когда используете метод
            <methodname>Zend_Cache::factory()</methodname>:
        </para>
        <programlisting language="php"><![CDATA[
$cache = Zend_Cache::factory('Core', 'Zend Platform');
]]></programlisting>
        <para>
            Нет специальных опций для этого бэкэнда.
        </para>
    </sect2>
    <sect2 id="zend.cache.backends.twolevels">
        <title>Zend_Cache_Backend_TwoLevels</title>
        <para>
            Этот расширенный бэкэнд является гибридным. Он сохраняет записи кэша
            через два других бэкэнда: быстрый, но ограниченный в функциональных
            возможностях, бэкэнд (Apc, Memcache и др.),
            и "медленный", но более функциональный, бэкэнд (File, Sqlite и др.)
        </para>
        <para>
            Этот бэкэнд использует параметр priority (который передается
            фронтэнду при сохранении записи) и оставшееся место в быстром
            бэкэнде для оптимизации использования этих двух бэкэндов.
        </para>
        <para>
            Доступные опции:
        </para>
        <table id="zend.cache.backends.twolevels.table">
            <title>Опции Zend_Cache_Backend_TwoLevels</title>
            <tgroup cols="4">
                 <thead>
                      <row>
                         <entry>Опция</entry>
                         <entry>Тип данных</entry>
                         <entry>Значение по умолчанию</entry>
                         <entry>Описание</entry>
                    </row>
                 </thead>
                 <tbody>
                      <row>
                          <entry><emphasis>slow_backend</emphasis></entry>
                          <entry><type>String</type></entry>
                          <entry>File</entry>
                          <entry>
                              Имя "медленного" бэкэнда
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>fast_backend</emphasis></entry>
                          <entry><type>String</type></entry>
                          <entry>Apc</entry>
                          <entry>
                              Имя "быстрого" бэкэнда
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>slow_backend_options</emphasis></entry>
                          <entry><type>Array</type></entry>
                          <entry><methodname>array()</methodname></entry>
                          <entry>
                              Опции для "медленного" бэкэнда
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>fast_backend_options</emphasis></entry>
                          <entry><type>Array</type></entry>
                          <entry><methodname>array()</methodname></entry>
                          <entry>
                              Опции для "быстрого" бэкэнда
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>slow_backend_custom_naming</emphasis></entry>
                          <entry><type>Boolean</type></entry>
                          <entry><constant>FALSE</constant></entry>
                          <entry>
                              Если <constant>TRUE</constant>, то аргумент slow_backend
                              используется как полное имя класса, иначе
                              значение этого аргумента используется в конце
                              имени класса
                              "<classname>Zend_Cache_Backend_</classname>[...]".
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>fast_backend_custom_naming</emphasis></entry>
                          <entry><type>Boolean</type></entry>
                          <entry><constant>FALSE</constant></entry>
                          <entry>
                              Если <constant>TRUE</constant>, то аргумент fast_backend
                              используется как полное имя класса.
                              Если <constant>FALSE</constant>, то
                              значение этого аргумента используется в конце
                              имени класса
                              "<classname>Zend_Cache_Backend_</classname>[...]".
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>slow_backend_autoload</emphasis></entry>
                          <entry><type>Boolean</type></entry>
                          <entry><constant>FALSE</constant></entry>
                          <entry>
                              Если <constant>TRUE</constant>, то для медленного бэкэнда не
                              будет производиться включение require_once
                              (полезно только при использовании собственных
                              бэкэндов).
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>fast_backend_autoload</emphasis></entry>
                          <entry><type>Boolean</type></entry>
                          <entry><constant>FALSE</constant></entry>
                          <entry>
                              Если <constant>TRUE</constant>, то для быстрого бэкэнда не
                              будет производиться включение require_once
                              (полезно только при использовании собственных
                              бэкэндов).
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>auto_refresh_fast_cache</emphasis></entry>
                          <entry><type>Boolean</type></entry>
                          <entry><constant>TRUE</constant></entry>
                          <entry>
                              Если <constant>TRUE</constant>, то будет производиться
                              автоматическое обновление "быстрого" кэша при
                              попадании в кэш.
                          </entry>
                      </row>
                      <row>
                          <entry><emphasis>stats_update_factor</emphasis></entry>
                          <entry><type>Integer</type></entry>
                          <entry>10</entry>
                          <entry>
                              Настройка частоты вычисления
                              процента заполнения быстрого бэкэнда,
                              либо полное отключение вычисления. При сохранении
                              записи в кэш вычисление процента заполнения
                              быстрого бэкэнда производится случайным образом
                              1 раз на x записей в кэш.
                          </entry>
                      </row>
                  </tbody>
              </tgroup>
          </table>
    </sect2>
    <sect2 id="zend.cache.backends.zendserver">
        <title>Zend_Cache_Backend_ZendServer_Disk и Zend_Cache_Backend_ZendServer_ShMem</title>
        <para>
            Эти бэкэнды служат для сохранения записей кэша через соответствующую
            возможность <ulink url="http://www.zend.com/en/products/server/downloads-all?zfs=zf_download">Zend Server</ulink>.
        </para>
        <para>
            Будьте осторожны - в настоящий момент этот бэкэнд не поддерживает
            теги, так же, как и аргумент "doNotTestCacheValidity=true".
        </para>
        <para>
            Этот бэкэнд работает только в среде Zend Server с запросами,
            производимыми через <acronym>HTTP</acronym> и
            <acronym>HTTPS</acronym>, и не работает в случае скриптов,
            запускаемых через командную строку.
        </para>
        <para>
            Нет специальных опций для этого бэкэнда.
        </para>
    </sect2>
</sect1>
<!--
vim:se ts=4 sw=4 et:
-->
