Zend_Config-Introduction.xml 4.2 KB

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