| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <sect2 id="zend.application.available-resources.multidb">
- <title>Zend_Application_Resource_Multidb</title>
- <para>
- <classname>Zend_Application_Resource_Multidb</classname> is used to initialize
- multiple Database connections. You can use the same options as you can with
- the <link linkend="zend.application.available-resources.db">Db Resource Plugin</link>.
- However, for specifying a default connection, you can also use the 'default' directive.
- </para>
- <example id="zend.application.available-resources.multidb.configexample">
- <title>Setting up multiple Db Connections</title>
- <para>
- Below is an example <acronym>INI</acronym> configuration that can be used to initialize
- two Db Connections.
- </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>Retrieving a specific database adapter</title>
- <para>
- When using this resource plugin you usually will want to retrieve
- a specific database. This can be done by using the resource's
- <methodname>getDb()</methodname>. The method
- <methodname>getDb()</methodname> returns an instance of a class that
- extends <classname>Zend_Db_Adapter_Abstract</classname>. If you have not
- set a default database, an exception will be thrown when this method
- is called without specifying a parameter.
- </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.retrieveSpecificDb">
- <title>Retrieving the default database adapter</title>
- <para>
- Additionally, you can retrieve the default database adapter
- by using the method <methodname>getDefaultDb()</methodname>.
- If you have not set a default adapter, the first configured db
- adapter will be returned. Unless you specify
- <!-- @TODO: Should I use 'acronym' here? - Freeaqingme -->
- <acronym>false</acronym> as first parameter, then <acronym>null</acronym>
- will be returned when no default database adapter was set.
- </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>Retrieving the default database adapter</title>
- <para>
- Additionally, you can use
- <methodname>getDefaultDb()</methodname> to retrieve the db that
- was set as default. If you haven't set one, it will return the first
- one in the stack.
- </para>
-
- <para>Below is an example that assumes the Multidb resource plugin has been configured
- with the INI sample above:</para>
- <programlisting language="php"><![CDATA[
- $resource = $bootstrap->getPluginResource('multidb');
- $db2 = $resource->getDefaultDb();
- // Same config, but now without a default db:
- $db1 = $resource->getDefaultDb();
- $null = $resource->getDefaultDb(false); // null
- ]]></programlisting>
- </example>
- </sect2>
|