2
0

Zend_Config-Introduction.xml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  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 <acronym>PHP</acronym> Array
  25. vorliegen, können diese auch einfach an den <classname>Zend_Config</classname>
  26. Constructor übergeben werden, um dann über die objektorientierte Schnittstelle auf sie
  27. zugreifen zu können:
  28. </para>
  29. <programlisting language="php"><![CDATA[
  30. // Gegeben ist ein Array mit Konfigurations-Daten
  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. // Erstelle das objektorientierte Interface zum Datenzugriff
  44. $config = new Zend_Config($configArray);
  45. // Gebe einen Eintrag aus (Ausgabe ist 'www.example.com')
  46. echo $config->webhost;
  47. // Konfigurations-Daten benutzen, um eine Datenbank-Verbindung her zu stellen
  48. $db = Zend_Db::factory($config->database->adapter,
  49. $config->database->params->toArray());
  50. // Alternative Verwendung: einfach das Zend_Config Objekt übergeben.
  51. // Zend_Db factory weiß wie es zu interpretieren ist.
  52. $db = Zend_Db::factory($config->database);
  53. ]]></programlisting>
  54. </example>
  55. <para>
  56. Wie das Beispiel oben zeigt, kann man über <classname>Zend_Config</classname> auf die
  57. Konfigurations-Daten aus dem übergebenen Array so zugreifen, wie auf die Eigenschaften
  58. einer verschachtelten Objekt-Struktur.
  59. </para>
  60. <para>
  61. Zusätzlich zum objektorientierten Zugriff auf die Daten Werte hat
  62. <classname>Zend_Config</classname> <methodname>get()</methodname> welches den unterstützten
  63. Standardwert zurückgibt wenn das Daten Element nicht existiert. Zum Beispiel:
  64. </para>
  65. <programlisting language="php"><![CDATA[
  66. $host = $config->database->get('host', 'localhost');
  67. ]]></programlisting>
  68. <example id="zend.config.introduction.example.file.php">
  69. <title>Zend_Config mit einer PHP Konfigurationsdatei verwenden</title>
  70. <para>
  71. Es ist oft gewünscht eine reine <acronym>PHP</acronym> basierende Konfigurationsdatei
  72. zu verwenden. Der folgende Code zeigt wie das ganz einfach erreicht werden kann:
  73. </para>
  74. <programlisting language="php"><![CDATA[
  75. // config.php
  76. return array(
  77. 'webhost' => 'www.example.com',
  78. 'database' => array(
  79. 'adapter' => 'pdo_mysql',
  80. 'params' => array(
  81. 'host' => 'db.example.com',
  82. 'username' => 'dbuser',
  83. 'password' => 'geheim',
  84. 'dbname' => 'mydatabase'
  85. )
  86. )
  87. );
  88. ]]></programlisting>
  89. <programlisting language="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. ]]></programlisting>
  95. </example>
  96. </sect1>