2
0

Zend_Config-Introduction.xml 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <sect1 id="zend.config.introduction">
  4. <title>Введение</title>
  5. <para>
  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>.
  16. </para>
  17. <example id="zend.config.introduction.example.using">
  18. <title>Использование Zend_Config</title>
  19. <para>
  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. Но если конфигурационные данные доступны в виде массива PHP,
  24. то можно передавать эти данные конструктору <classname>Zend_Config</classname>,
  25. чтобы использовать преимущества простого объектно-ориентированного
  26. интерфейса.
  27. </para>
  28. <programlisting language="php"><![CDATA[
  29. // Массив конфигурационных данных
  30. $configArray = array(
  31. 'webhost' => 'www.example.com',
  32. 'database' => array(
  33. 'adapter' => 'pdo_mysql',
  34. 'params' => array(
  35. 'host' => 'db.example.com',
  36. 'username' => 'dbuser',
  37. 'password' => 'secret',
  38. 'dbname' => 'mydatabase'
  39. )
  40. )
  41. );
  42. // Создание объектно-ориентированной обертки для конфигурационных данных
  43. require_once 'Zend/Config.php';
  44. $config = new Zend_Config($configArray);
  45. // Вывод элемента конфигурационных данных (результатом будет 'www.example.com')
  46. echo $config->webhost;
  47. // Использование конфигурационных данных для соединения с базой данных
  48. $db = Zend_Db::factory($config->database->adapter,
  49. $config->database->params->toArray());
  50. // Альтернативный способ - просто передавайте объект Zend_Config.
  51. // Фабрика Zend_Db знает, как его интерпретировать.
  52. $db = Zend_Db::factory($config->database);
  53. ]]></programlisting>
  54. </example>
  55. <para>
  56. Как показано в предыдущем примере, в <classname>Zend_Config</classname> для
  57. доступа к конфигурационным данным, переданным его конструктору,
  58. используется синтаксис вложенных свойств объектов.
  59. </para>
  60. <para>
  61. Кроме объектно-ориентированного доступа к значениям данных,
  62. <classname>Zend_Config</classname> также предоставляет метод <code>get()</code>,
  63. который будет возвращать значение по умолчанию, если элемент
  64. данных не существует. Например:
  65. </para>
  66. <programlisting language="php"><![CDATA[
  67. $host = $config->database->get('host', 'localhost');
  68. ]]></programlisting>
  69. <example id="zend.config.introduction.example.file.php">
  70. <title>Использование Zend_Config с конфигурационным файлом PHP</title>
  71. <para>
  72. Часто требуется использовать конфигурационный файл,
  73. основанный на "чистом" PHP. Следующий код показывает, как просто
  74. этого достичь:
  75. </para>
  76. <programlisting language="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 language="php"><![CDATA[
  91. // Использование конфигурации
  92. $config = new Zend_Config(require 'config.php');
  93. // Вывод элемента конфигурационных данных (результатом будет 'www.example.com')
  94. echo $config->webhost;
  95. ]]></programlisting>
  96. </example>
  97. </sect1>
  98. <!--
  99. vim:se ts=4 sw=4 et:
  100. -->