Zend_Config-Introduction.xml 4.3 KB

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