Zend_Application-AvailableResources-Multidb.xml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 20176 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.application.available-resources.multidb">
  5. <title>Zend_Application_Resource_Multidb</title>
  6. <para>
  7. <classname>Zend_Application_Resource_Multidb</classname>
  8. wird verwendet um mehrere
  9. Datenbankverbindungen zu initialisieren. Man kann die gleichen Optionen wie beim
  10. <link linkend="zend.application.available-resources.db">Db Ressource Plugin</link>
  11. verwenden.
  12. Trotzdem kann für das Spezifizieren einer Standardverbindung auch die
  13. 'default' Direktive
  14. verwendet werden.
  15. </para>
  16. <example id="zend.application.available-resources.multidb.configexample">
  17. <title>Mehrere Db Verbindungen konfigurieren</title>
  18. <para>
  19. Anbei ist eine beispielhafte
  20. <acronym>INI</acronym>
  21. Konfiguration die verwendet werden
  22. kann um zwei Db Verbindungen zu initialisieren.
  23. </para>
  24. <programlisting language="ini"><![CDATA[
  25. [production]
  26. resources.multidb.db1.adapter = "pdo_mysql"
  27. resources.multidb.db1.host = "localhost"
  28. resources.multidb.db1.username = "webuser"
  29. resources.multidb.db1.password = "XXXX"
  30. resources.multidb.db1.dbname = "db1"
  31. resources.multidb.db2.adapter = "pdo_pgsql"
  32. resources.multidb.db2.host = "example.com"
  33. resources.multidb.db2.username = "dba"
  34. resources.multidb.db2.password = "notthatpublic"
  35. resources.multidb.db2.dbname = "db2"
  36. resources.multidb.db2.default = true
  37. ]]></programlisting>
  38. </example>
  39. <example
  40. id="zend.application.available-resources.multidb.retrieveSpecificDb">
  41. <title>Einen speziellen Datenbankadapter empfangen</title>
  42. <para>
  43. Wenn dieses Ressource Plugin verwendet wird, will man normalerweise
  44. eine spezifische
  45. Datenbank erhalten. Das kann durch Verwendung von
  46. <methodname>getDb()</methodname>
  47. von
  48. der Ressource getan werden. Die Methode
  49. <methodname>getDb()</methodname>
  50. gibt eine
  51. Instanz einer Klasse zurück welche
  52. <classname>Zend_Db_Adapter_Abstract</classname>
  53. erweitert. Wenn man keine Standarddatendank gesetzt hat, wird eine
  54. Exception geworfen
  55. wenn diese Methode ohne die Spezifikation eines Parameters aufgerufen
  56. wird.
  57. </para>
  58. <programlisting language="php"><![CDATA[
  59. $resource = $bootstrap->getPluginResource('multidb');
  60. $db1 = $resource->getDb('db1');
  61. $db2 = $resource->getDb('db2');
  62. $defaultDb = $resource->getDb();
  63. ]]></programlisting>
  64. </example>
  65. <example
  66. id="zend.application.available-resources.multidb.retrieveDefaultDb">
  67. <title>Den standardmäßigen Datenbankadapter empfangen</title>
  68. <para>
  69. Zusätzlich kann der standardmäßige Datenbankadapter empfangen werden
  70. indem die Methode
  71. <methodname>getDefaultDb()</methodname>
  72. verwendet wird. Wenn man keinen standardmäßigen
  73. Adapter gesetzt hat, wird der erste konfigurierte Db Adapter zurückgegeben.
  74. Wenn man
  75. <constant>FALSE</constant>
  76. als ersten Parameter spezifiziert dann wird
  77. <constant>NULL</constant>
  78. zurückgegeben wenn kein standardmäßiger Datenbankadapter
  79. gesetzt wurde.
  80. </para>
  81. <para>
  82. Anbei ist ein Beispiel welches annimmt dass das Multidb Ressource
  83. Plugin mit dem
  84. obigen
  85. <acronym>INI</acronym>
  86. Beispiel konfiguriert wurde:
  87. </para>
  88. <programlisting language="php"><![CDATA[
  89. $resource = $bootstrap->getPluginResource('multidb');
  90. $db2 = $resource->getDefaultDb();
  91. // Selbe Konfiguration, aber ohne eine standardmäßige Db:
  92. $db1 = $resource->getDefaultDb();
  93. $null = $resource->getDefaultDb(false); // Null
  94. ]]></programlisting>
  95. </example>
  96. </sect2>