Zend_Config-Introduction.xml 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 20765 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.config.introduction">
  5. <title>Einleitung</title>
  6. <para>
  7. <classname>Zend_Config</classname>
  8. wurde entworfen um den Zugriff auf und die Verwendung von
  9. Konfigurations-Daten zu vereinfachen. Es stellt diese
  10. Konfigurations-Daten innerhalb
  11. der Applikation über eine verschachtelte Objekt-Struktur zur Verfügung.
  12. Die
  13. Konfigurations-Daten können aus verschiedenen Datenquellen gelesen werden,
  14. die hierarchische Datenspeicherung unterstützen. Derzeit stellt
  15. <classname>Zend_Config</classname>
  16. mit
  17. <link linkend="zend.config.adapters.ini">
  18. <classname>Zend_Config_Ini</classname>
  19. </link>
  20. und
  21. <link linkend="zend.config.adapters.xml">
  22. <classname>Zend_Config_Xml</classname>
  23. </link>
  24. Adapter für das Einlesen von Daten aus Textfiles zur Verfügung.
  25. </para>
  26. <example id="zend.config.introduction.example.using">
  27. <title>Zend-Config verwenden</title>
  28. <para>
  29. In der Regel geht man davon aus, dass Anwender eine der
  30. Adapter-Klassen wie
  31. <link linkend="zend.config.adapters.ini">
  32. <classname>Zend_Config_Ini</classname>
  33. </link>
  34. oder
  35. <link linkend="zend.config.adapters.xml">
  36. <classname>Zend_Config_Xml</classname>
  37. </link>
  38. verwenden. Wenn die Konfigurations-Daten aber als
  39. <acronym>PHP</acronym>
  40. Array
  41. vorliegen, können diese auch einfach an den
  42. <classname>Zend_Config</classname>
  43. Constructor übergeben werden, um dann über die objektorientierte
  44. Schnittstelle auf sie
  45. zugreifen zu können:
  46. </para>
  47. <programlisting language="php"><![CDATA[
  48. // Gegeben ist ein Array mit Konfigurations-Daten
  49. $configArray = array(
  50. 'webhost' => 'www.example.com',
  51. 'database' => array(
  52. 'adapter' => 'pdo_mysql',
  53. 'params' => array(
  54. 'host' => 'db.example.com',
  55. 'username' => 'dbuser',
  56. 'password' => 'secret',
  57. 'dbname' => 'mydatabase'
  58. )
  59. )
  60. );
  61. // Erstelle das objektorientierte Interface zum Datenzugriff
  62. $config = new Zend_Config($configArray);
  63. // Gebe einen Eintrag aus (Ausgabe ist 'www.example.com')
  64. echo $config->webhost;
  65. // Konfigurations-Daten benutzen, um eine Datenbank-Verbindung her zu stellen
  66. $db = Zend_Db::factory($config->database->adapter,
  67. $config->database->params->toArray());
  68. // Alternative Verwendung: einfach das Zend_Config Objekt übergeben.
  69. // Zend_Db factory weiß wie es zu interpretieren ist.
  70. $db = Zend_Db::factory($config->database);
  71. ]]></programlisting>
  72. </example>
  73. <para>
  74. Wie das Beispiel oben zeigt, kann man über
  75. <classname>Zend_Config</classname>
  76. auf die
  77. Konfigurations-Daten aus dem übergebenen Array so zugreifen, wie auf die Eigenschaften
  78. einer verschachtelten Objekt-Struktur.
  79. </para>
  80. <para>
  81. Zusätzlich zum objektorientierten Zugriff auf die Daten Werte hat
  82. <classname>Zend_Config</classname>
  83. <methodname>get()</methodname>
  84. welches den unterstützten
  85. Standardwert zurückgibt wenn das Daten Element nicht existiert. Zum Beispiel:
  86. </para>
  87. <programlisting language="php"><![CDATA[
  88. $host = $config->database->get('host', 'localhost');
  89. ]]></programlisting>
  90. <example id="zend.config.introduction.example.file.php">
  91. <title>Zend_Config mit einer PHP Konfigurationsdatei verwenden</title>
  92. <para>
  93. Es ist oft gewünscht eine reine
  94. <acronym>PHP</acronym>
  95. basierende Konfigurationsdatei
  96. zu verwenden. Der folgende Code zeigt wie das ganz einfach erreicht
  97. werden kann:
  98. </para>
  99. <programlisting language="php"><![CDATA[
  100. // config.php
  101. return array(
  102. 'webhost' => 'www.example.com',
  103. 'database' => array(
  104. 'adapter' => 'pdo_mysql',
  105. 'params' => array(
  106. 'host' => 'db.example.com',
  107. 'username' => 'dbuser',
  108. 'password' => 'geheim',
  109. 'dbname' => 'mydatabase'
  110. )
  111. )
  112. );
  113. ]]></programlisting>
  114. <programlisting language="php"><![CDATA[
  115. // Konfiguration konsumieren
  116. $config = new Zend_Config(require 'config.php');
  117. // Einen Konfigurationswert ausgeben (führt zu 'www.example.com')
  118. echo $config->webhost;
  119. ]]></programlisting>
  120. </example>
  121. </sect1>