Zend_Config-Introduction.xml 5.8 KB

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