Zend_Application-AvailableResources-Multidb.xml 3.6 KB

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