Zend_Config-Introduction.xml 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <sect1 id="zend.config.introduction">
  2. <title>Введение</title>
  3. <para>
  4. <code>Zend_Config</code> создан для того, чтобы сделать более
  5. простым доступ к конфигурационным данным и их использование внутри приложения.
  6. Он предоставляет основанный на вложенных свойствах объектов пользовательский
  7. интерфейс для доступа к конфигурационным данным внутри приложения.
  8. Конфигурационные данные могут храниться на различных носителях информации,
  9. поддерживающих хранение данных в виде иерархии. На данный момент
  10. <code>Zend_Config</code> предоставляет адаптеры для конфигурационных
  11. данных, хранящихся в текстовых файлах:
  12. <link linkend="zend.config.adapters.ini"><code>Zend_Config_Ini</code></link>
  13. и <link linkend="zend.config.adapters.xml"><code>Zend_Config_Xml</code></link>.
  14. </para>
  15. <example id="zend.config.introduction.example.using">
  16. <title>Использование <code>Zend_Config</code></title>
  17. <para>
  18. Обычно предполагается, что используется один из классов адаптеров, например,
  19. <link linkend="zend.config.adapters.ini"><code>Zend_Config_Ini</code></link>
  20. или <link linkend="zend.config.adapters.xml"><code>Zend_Config_Xml</code></link>.
  21. Но если конфигурационные данные доступны в виде массива PHP,
  22. то можно передавать эти данные конструктору <code>Zend_Config</code>,
  23. чтобы использовать преимущества простого объектно-ориентированного
  24. интерфейса.
  25. </para>
  26. <programlisting role="php"><![CDATA[
  27. // Массив конфигурационных данных
  28. $configArray = array(
  29. 'webhost' => 'www.example.com',
  30. 'database' => array(
  31. 'adapter' => 'pdo_mysql',
  32. 'params' => array(
  33. 'host' => 'db.example.com',
  34. 'username' => 'dbuser',
  35. 'password' => 'secret',
  36. 'dbname' => 'mydatabase'
  37. )
  38. )
  39. );
  40. // Создание объектно-ориентированной обертки для конфигурационных данных
  41. require_once 'Zend/Config.php';
  42. $config = new Zend_Config($configArray);
  43. // Вывод элемента конфигурационных данных (результатом будет 'www.example.com')
  44. echo $config->webhost;
  45. // Использование конфигурационных данных для соединения с базой данных
  46. $db = Zend_Db::factory($config->database->adapter,
  47. $config->database->params->toArray());
  48. // Альтернативный способ - просто передавайте объект Zend_Config.
  49. // Фабрика Zend_Db знает, как его интерпретировать.
  50. $db = Zend_Db::factory($config->database);
  51. ]]>
  52. </programlisting>
  53. </example>
  54. <para>
  55. Как показано в предыдущем примере, в <code>Zend_Config</code> для
  56. доступа к конфигурационным данным, переданным его конструктору,
  57. используется синтаксис вложенных свойств объектов.
  58. </para>
  59. <para>
  60. Кроме объектно-ориентированного доступа к значениям данных,
  61. <code>Zend_Config</code> также предоставляет метод <code>get()</code>,
  62. который будет возвращать значение по умолчанию, если элемент
  63. данных не существует. Например:
  64. </para>
  65. <programlisting role="php"><![CDATA[
  66. $host = $config->database->get('host', 'localhost');
  67. ]]>
  68. </programlisting>
  69. <example id="zend.config.introduction.example.file.php">
  70. <title>Использование <code>Zend_Config</code> с конфигурационным файлом PHP</title>
  71. <para>
  72. Часто требуется использовать конфигурационный файл,
  73. основанный на "чистом" PHP. Следующий код показывает, как просто
  74. этого достичь.
  75. </para>
  76. <programlisting role="php"><![CDATA[
  77. // config.php
  78. return array(
  79. 'webhost' => 'www.example.com',
  80. 'database' => array(
  81. 'adapter' => 'pdo_mysql',
  82. 'params' => array(
  83. 'host' => 'db.example.com',
  84. 'username' => 'dbuser',
  85. 'password' => 'secret',
  86. 'dbname' => 'mydatabase'
  87. )
  88. )
  89. );]]></programlisting>
  90. <programlisting role="php"><![CDATA[
  91. // Использование конфигурации
  92. require_once 'Zend/Config.php';
  93. $config = new Zend_Config(require 'config.php');
  94. // Вывод элемента конфигурационных данных (результатом будет 'www.example.com')
  95. echo $config->webhost;
  96. ]]>
  97. </programlisting>
  98. </example>
  99. </sect1>
  100. <!--
  101. vim:se ts=4 sw=4 et:
  102. -->