Содержание


Config


Config, ЗФ2, Zend Framework 2, ZF2,





Zend\Config создан для упрощения доступа к данным настройки приложения. Конфигурационные данные могут храниться в различных источниках поддерживающих иерархическое хранение данных. На данный момент Zend\Config предоставляет адаптеры, которые могут читать и записывать данные в таких форматах: .ini, JSON, YAML, XML.

 


Использование Zend\Config\Config с Reader Class

 

Как правило, предполагается, что пользователи будут использовать один из классов для чтения конфигурационного файла, однако если данные передаются просто как массив PHP, достаточно передать его в конструктор Zend\Config\Config для использования простого объектно-ориентированного интерфейса:

// An array of configuration data is given
$configArray = array(
    'webhost'  => 'www.example.com',
    'database' => array(
        'adapter' => 'pdo_mysql',
        'params'  => array(
            'host'     => 'db.example.com',
            'username' => 'dbuser',
            'password' => 'secret',
            'dbname'   => 'mydatabase'
        )
    )
);
 
// Create the object-oriented wrapper using the configuration data
$config = new Zend\Config\Config($configArray);
 
// Print a configuration datum (results in 'www.example.com')
echo $config->webhost;

Как было продемонстрировано в примере выше, Zend\Config\Config  предоставляет возможность использовать вложенных свойств для  доступа к конфигурационным данным, переданных в конструктор.

 

Наравне с объектно- ориентированным доступом к данным так же есть метод  get(), возвращающий указаное значение, если такого элемента нету в массиве:

$host = $config->database->get('host', 'localhost');



Использование Zend\Config\Config с файлами конфигурации PHP

 

Часто возникает необходимость использовать для файла конфигурации чистый PHP. В следующем примере показано как легко это можно сделать:

// config.php
return array(
    'webhost'  => 'www.example.com',
    'database' => array(
        'adapter' => 'pdo_mysql',
        'params'  => array(
            'host'     => 'db.example.com',
            'username' => 'dbuser',
            'password' => 'secret',
            'dbname'   => 'mydatabase'
        )
    )
);
// Consumes the configuration array
$config = new Zend\Config\Config(include 'config.php');
 
// Print a configuration datum (results in 'www.example.com')
echo $config->webhost;

Автор статьи: DuB