| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect2 id="zend.application.available-resources.multidb">
- <title>Zend_Application_Resource_Multidb</title>
- <para>
- <classname>Zend_Application_Resource_Multidb</classname> wird verwendet um mehrere
- Datenbankverbindungen zu initialisieren. Man kann die gleichen Optionen wie beim <link
- linkend="zend.application.available-resources.db">Db Ressource Plugin</link> verwenden.
- Trotzdem kann für das Spezifizieren einer Standardverbindung auch die 'default' Direktive
- verwendet werden.
- </para>
- <example id="zend.application.available-resources.multidb.configexample">
- <title>Mehrere Db Verbindungen konfigurieren</title>
- <para>
- Anbei ist eine beispielhafte <acronym>INI</acronym> Konfiguration die verwendet werden
- kann um zwei Db Verbindungen zu initialisieren.
- </para>
- <programlisting language="ini"><![CDATA[
- [production]
- resources.multidb.db1.adapter = "pdo_mysql"
- resources.multidb.db1.host = "localhost"
- resources.multidb.db1.username = "webuser"
- resources.multidb.db1.password = "XXXX"
- resources.multidb.db1.dbname = "db1"
- resources.multidb.db2.adapter = "pdo_pgsql"
- resources.multidb.db2.host = "example.com"
- resources.multidb.db2.username = "dba"
- resources.multidb.db2.password = "notthatpublic"
- resources.multidb.db2.dbname = "db2"
- resources.multidb.db2.default = true
- ]]></programlisting>
- </example>
- <example id="zend.application.available-resources.multidb.retrieveSpecificDb">
- <title>Einen speziellen Datenbankadapter empfangen</title>
- <para>
- Wenn dieses Ressource Plugin verwendet wird, will man normalerweise eine spezifische
- Datenbank erhalten. Das kann durch Verwendung von <methodname>getDb()</methodname> von
- der Ressource getan werden. Die Methode <methodname>getDb()</methodname> gibt eine
- Instanz einer Klasse zurück welche <classname>Zend_Db_Adapter_Abstract</classname>
- erweitert. Wenn man keine Standarddatendank gesetzt hat, wird eine Exception geworfen
- wenn diese Methode ohne die Spezifikation eines Parameters aufgerufen wird.
- </para>
- <programlisting language="php"><![CDATA[
- $resource = $bootstrap->getPluginResource('multidb');
- $db1 = $resource->getDb('db1');
- $db2 = $resource->getDb('db2');
- $defaultDb = $resource->getDb();
- ]]></programlisting>
- </example>
- <example id="zend.application.available-resources.multidb.retrieveDefaultDb">
- <title>Den standardmäßigen Datenbankadapter empfangen</title>
- <para>
- Zusätzlich kann der standardmäßige Datenbankadapter empfangen werden indem die Methode
- <methodname>getDefaultDb()</methodname> verwendet wird. Wenn man keinen standardmäßigen
- Adapter gesetzt hat, wird der erste konfigurierte Db Adapter zurückgegeben. Wenn man
- <constant>FALSE</constant> als ersten Parameter spezifiziert dann wird
- <constant>NULL</constant> zurückgegeben wenn kein standardmäßiger Datenbankadapter
- gesetzt wurde.
- </para>
- <para>
- Anbei ist ein Beispiel welches annimmt dass das Multidb Ressource Plugin mit dem
- obigen <acronym>INI</acronym> Beispiel konfiguriert wurde:
- </para>
- <programlisting language="php"><![CDATA[
- $resource = $bootstrap->getPluginResource('multidb');
- $db2 = $resource->getDefaultDb();
- // Selbe Konfiguration, aber ohne eine standardmäßige Db:
- $db1 = $resource->getDefaultDb();
- $null = $resource->getDefaultDb(false); // Null
- ]]></programlisting>
- </example>
- </sect2>
|