| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 20176 -->
- <!-- 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>
|