1 <?xml version="1.0" encoding="UTF-8"?>
3 <sect1 id="zend.config.introduction">
4 <title>Введение</title>
6 <classname>Zend_Config</classname> создан для того, чтобы сделать более
7 простым доступ к конфигурационным данным и их использование внутри приложения.
8 Он предоставляет основанный на вложенных свойствах объектов пользовательский
9 интерфейс для доступа к конфигурационным данным внутри приложения.
10 Конфигурационные данные могут храниться на различных носителях информации,
11 поддерживающих хранение данных в виде иерархии. На данный момент
12 <classname>Zend_Config</classname> предоставляет адаптеры для конфигурационных
13 данных, хранящихся в текстовых файлах:
14 <link linkend="zend.config.adapters.ini"><classname>Zend_Config_Ini</classname></link>
15 и <link linkend="zend.config.adapters.xml"><classname>Zend_Config_Xml</classname></link>.
17 <example id="zend.config.introduction.example.using">
18 <title>Использование Zend_Config</title>
20 Обычно предполагается, что используется один из классов адаптеров, например,
21 <link linkend="zend.config.adapters.ini"><classname>Zend_Config_Ini</classname></link>
22 или <link linkend="zend.config.adapters.xml"><classname>Zend_Config_Xml</classname></link>.
23 Но если конфигурационные данные доступны в виде массива
24 <acronym>PHP</acronym>,
25 то можно передавать эти данные конструктору <classname>Zend_Config</classname>,
26 чтобы использовать преимущества простого объектно-ориентированного
29 <programlisting language="php"><![CDATA[
30 // Массив конфигурационных данных
32 'webhost' => 'www.example.com',
34 'adapter' => 'pdo_mysql',
36 'host' => 'db.example.com',
37 'username' => 'dbuser',
38 'password' => 'secret',
39 'dbname' => 'mydatabase'
44 // Создание объектно-ориентированной обертки для конфигурационных данных
45 require_once 'Zend/Config.php';
46 $config = new Zend_Config($configArray);
48 // Вывод элемента конфигурационных данных (результатом будет 'www.example.com')
49 echo $config->webhost;
51 // Использование конфигурационных данных для соединения с базой данных
52 $db = Zend_Db::factory($config->database->adapter,
53 $config->database->params->toArray());
55 // Альтернативный способ - просто передавайте объект Zend_Config.
56 // Фабрика Zend_Db знает, как его интерпретировать.
57 $db = Zend_Db::factory($config->database);
61 Как показано в предыдущем примере, в <classname>Zend_Config</classname> для
62 доступа к конфигурационным данным, переданным его конструктору,
63 используется синтаксис вложенных свойств объектов.
66 Кроме объектно-ориентированного доступа к значениям данных,
67 <classname>Zend_Config</classname> также предоставляет метод
68 <methodname>get()</methodname>,
69 который будет возвращать значение по умолчанию, если элемент
70 данных не существует. Например:
72 <programlisting language="php"><![CDATA[
73 $host = $config->database->get('host', 'localhost');
75 <example id="zend.config.introduction.example.file.php">
76 <title>Использование Zend_Config с конфигурационным файлом PHP</title>
78 Часто требуется использовать конфигурационный файл,
79 основанный на "чистом" <acronym>PHP</acronym>. Следующий код
80 показывает, как просто этого достичь:
82 <programlisting language="php"><![CDATA[
85 'webhost' => 'www.example.com',
87 'adapter' => 'pdo_mysql',
89 'host' => 'db.example.com',
90 'username' => 'dbuser',
91 'password' => 'secret',
92 'dbname' => 'mydatabase'
95 );]]></programlisting>
96 <programlisting language="php"><![CDATA[
97 // Использование конфигурации
98 $config = new Zend_Config(require 'config.php');
100 // Вывод элемента конфигурационных данных (результатом будет 'www.example.com')
101 echo $config->webhost;