Zend_Config-Introduction.xml 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15207 -->
  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>Zend-Config 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. ]]></programlisting>
  51. </example>
  52. <para>
  53. Wie das Beispiel oben zeigt, kann man über <classname>Zend_Config</classname> auf die
  54. Konfigurations-Daten aus dem übergebenen Array so zugreifen, wie auf die Eigenschaften
  55. einer verschachtelten Objekt-Struktur.
  56. </para>
  57. <para>
  58. Zusätzlich zum objektorientierten Zugriff auf die Daten Werte hat <classname>Zend_Config</classname>
  59. <code>get()</code> welches den unterstützten Standardwert zurückgibt wenn das Daten Element
  60. nicht existiert. Zum Beispiel:
  61. </para>
  62. <programlisting role="php"><![CDATA[
  63. $host = $config->database->get('host', 'localhost');
  64. ]]></programlisting>
  65. <example id="zend.config.introduction.example.file.php">
  66. <title>Zend_Config mit einer PHP Konfigurationsdatei verwenden</title>
  67. <para>
  68. Es ist oft gewünscht eine reine PHP-basierende Konfigurationsdatei zu verwenden. Der folgende
  69. Code zeigt wie das ganz einfach erreicht werden kann:
  70. </para>
  71. <programlisting role="php"><![CDATA[
  72. // config.php
  73. return array(
  74. 'webhost' => 'www.example.com',
  75. 'database' => array(
  76. 'adapter' => 'pdo_mysql',
  77. 'params' => array(
  78. 'host' => 'db.example.com',
  79. 'username' => 'dbuser',
  80. 'password' => 'geheim',
  81. 'dbname' => 'mydatabase'
  82. )
  83. )
  84. );
  85. ]]></programlisting>
  86. <programlisting role="php"><![CDATA[
  87. // Konfiguration konsumieren
  88. $config = new Zend_Config(require 'config.php');
  89. // Einen Konfigurationswert ausgeben (führt zu 'www.example.com')
  90. echo $config->webhost;
  91. ]]></programlisting>
  92. </example>
  93. </sect1>
  94. <!--
  95. vim:se ts=4 sw=4 et:
  96. -->