Введение в Zend Framework

 Learning Zend Framework

appendix

 Zend Framework Reference


  • Zend_Gdata
  • Zend_Http
  • Zend_InfoCard
  • Zend_Json
  • Zend_Layout
  • Zend_Ldap
  • Zend_Loader
  • Zend_Locale
  • Zend_Log
  • Zend_Mail
  • Zend_Markup
  • Zend_Measure
  • Zend_Memory
  • Zend_Mime
  • Zend_Navigation
  • Zend_Oauth
  • Zend_OpenId
  • Zend_Paginator
  • Zend_Pdf
  • Zend_ProgressBar
  • Zend_Queue
  • Zend_Reflection
  • Zend_Registry
  • Zend_Rest

  • Zend_Search_Lucene
  • Zend_Serializer
  • Zend_Server
  • Zend_Service
  • Zend_Session
  • Zend_Soap
  • Zend_Tag
  • Zend_Test
  • Zend_Text
  • Zend_TimeSync
  • Zend_Tool
  • Zend_Tool_Framework
  • Zend_Tool_Project
  • Zend_Translate
  • Zend_Uri
  • Zend_Validate
  • Zend_Version
  • Zend_View
  • Zend_Wildfire
  • Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Ttranslation 27.4% Update 2010-11-28 - Revision 23238 - Version ZF 1.11.x

    21.3. Zend_Config_Ini

    Zend_Config_Ini дает разработчикам возможность хранить конфигурационные данные в знакомом большинству формате INI и считывать их в приложении с использованием синтаксиса вложенных свойств объекта. Формат INI специализируется на обеспечении иерархии конфигурационных данных и наследования между разделами конфигурационных данных. Иерархии конфигурационных данных поддерживаются посредством разделения ключей точкой ("."). Раздел можно расширять или наследовать от другого раздела посредством указания имени раздела с двоеточием (":") и именем раздела, от которого наследуются данные, после него.

    [Замечание] Синтаксический разбор INI-файла

    Zend_Config_Ini использует функцию PHP parse_ini_file(). Пожалуйста, прочитайте документацию, чтобы получить представление об особенностях ее поведения, которые распространяются и на Zend_Config_Ini — например, о том, как обрабатываются специальные значения "TRUE", "FALSE", "yes", "no" и "NULL".

    [Замечание] Разделитель ключей

    По умолчанию разделителем ключей является символ точки ("."). Он может быть заменен на любой другой путем изменения ключа 'nestSeparator' в массиве $options при создании объекта Zend_Config_Ini. Например:

    $options['nestSeparator'] = ':';
    $config = new Zend_Config_Ini('/path/to/config.ini',
                                  
    'staging',
                                  
    $options);

    Пример 21.3. Использование Zend_Config_Ini

    Данный пример демонстрирует использование Zend_Config_Ini для загрузки конфигурационных данных из файла INI. В этом примере используются конфигурационные данные для производственной и промежуточной систем. Поскольку конфигурационные данные для промежуточной и производственной систем в основном одни и те же, то "промежуточный" (staging) раздел наследует от "производственного" (production) раздела. В данном случае выбор произвольный, т.е. может быть и наоборот — "производственный" раздел наследует от "промежуточного", хотя это может не подходить в более сложных случаях. Допустим, конфигурационные данные находятся в файле /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 и нужный раздел, довольно просто:

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

    echo 
    $config->database->params->host;   // выведет "dev.example.com"
    echo $config->database->params->dbname// выведет "dbname"

    [Замечание] Замечание

    Таблица 21.1. Параметры конструктора Zend_Config_Ini

    Параметр Примечание
    $filename INI-файл для загрузки
    $section Раздел в INI-файле, который должен быть загружен. Установка этого параметра в NULL вызовет загрузку всех разделов. Также может быть передан массив имен разделов для загрузки нескольких разделов.
    $options = false Массив опций. Поддерживаются следующие ключи:
    • allowModifications: Устанавливается в TRUE, чтобы разрешить последующую модификацию загруженного файла. По умолчанию установлен в FALSE

    • nestSeparator: Задает символ, используемый в качестве разделителя узлов. По умолчанию это "."


    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...