Отправляет email-рассылки с помощью сервиса Sendsay

PHP 5: Новые возможности.

  Все выпуски  

ZEND FRAMEWORK: Класс Zend_Config


PHP 5: Новые возможности.

Класс Zend_Config предназначен для облегчения работы с конфигурационными данными для веб приложений. Этот класс предлагает интерфейс для чтения иерархически организованных данных. Поддерживаются несколько различных форматов хранения данных, а именно: PHP массив, .ini файл и формат XML. Для работы с каждым из перечисленных форматов существкет свой класс-помощник (Zend_Config_Array, Zend_Config_Ini и Zend_Config_Xml соответственно).

Любопытной возможностью, расширяющей традиционную для данной задачи функциональность, является поддержка наследования: данные из одной секции конфигурационного файла могут наследоваться другой секцией. Однако, унаследовать данные каждая секция может лишь от одной родительской секции.

Класс Zend_Config использует интерфейсы Countable и Iterator для более удобного доступа к данным, которые представлены в виде ассоциативного массива.

Следует иметь в виду, что главное предназначение класса - именно чтение конфигурационных данных. Впрочем, считанные данные могут быть подвергнуты модификации, но только в памяти; механизм обратной записи данных в настоящее время не поддерживается.

При необходимости класс Zend_Config может быть расширен.

Класс Zend_Config_Array позволяет разработчикам загружать многомерные ассоциативные массивы с конфигурационными данными.

[Внимание]Внимание

Массив с конфигурационными данными должен называться $config.

Для чтения массива с конфигурационными данными класс Zend_Config использует метод load() класса-помощника Zend_Config_Array.


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

Данные, считанные из PHP массива, сохраняют свой тип.

Класс Zend_Config_Ini позволяет считывать данные из .ini файла. При этом используется стандартная функция PHP parse_ini_file(), поэтому файл должен следовать принятым для этой функции соглашениям.

Наследование данных поддерживается при помощи ключевого слова extends, имеющего значение, совпадающее с названием родительской секции.


Класс Zend_Config_Xml помогает считывать данные из файла в формате XML, с корневым элементом <config>.

Наследование данных поддерживается при помощи атрибута extends, имеющего значение, совпадающее с названием родительской секции.


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

Все данные, считанные из XML файла, имеют строковый тип.

  1. Предложите способ доступа к конфигурационным данным для соединения с базой данных в файле config.php, расположенному в той же директории, что и рабочий скрипт.

    <?php
    
    // config.php
    
    $config['foo'] = array('foo' => 'Foo', 'bar' => 'Bar');
    $config['database'] = array('server' => 'localhost', 'dbname' => 'foo',
                                'user' => 'foo', 'password' => 'password');
                    
  2. Что будет выведено на экран (предполагается, что файл config.ini находится в одной директории с рабочим скриптом)?

    ; config.ini
    
    [foo]
    bar = BAR
                    
    <?php
    
    define('BAR', 'Bar');
    
    $config = new Zend_Config(Zend_Config_Ini::load('config.ini', 'foo'));
    
    print $config->bar;
                    
    [Подсказка]Подсказка

    Воспользуйтесь описанием функции parse_ini_file() в документации [2][3].

  3. Измените конфигурационный файл таким образом, чтобы секция two наследовала данные секции one.

    <?xml version="1.0"?>
    <config>
        <one>
            <first>1</first>
        </one>
        <two>
            <second>2</second>
        </two>
    </config>
                    

«Ответы и решения к Глава 11, Класс Zend_Config»

Created with DocBook


В избранное