Zend_Application-AvailableResources-Multidb.xml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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> est utilisé pour initialiser de
  8. multiples connexions vers des bases de données. Vous pouvez utiliser les mêmes options
  9. qu'avec le <link
  10. linkend="zend.application.available-resources.db">plugin de ressource Db</link>.
  11. Cependant, pour spécifier une connexion par défaut, vous pouvez aussi utiliser la directive
  12. 'default'.
  13. </para>
  14. <example id="zend.application.available-resources.multidb.configexample">
  15. <title>Paramétrer de multiples connexions vers des bases de données</title>
  16. <para>
  17. Ci-dessous vous avez un exemple de configuration <acronym>INI</acronym> montrant
  18. l'initialisation de deux connexions.
  19. </para>
  20. <programlisting language="ini"><![CDATA[
  21. [production]
  22. resources.multidb.db1.adapter = "pdo_mysql"
  23. resources.multidb.db1.host = "localhost"
  24. resources.multidb.db1.username = "webuser"
  25. resources.multidb.db1.password = "XXXX"
  26. resources.multidb.db1.dbname = "db1"
  27. resources.multidb.db2.adapter = "pdo_pgsql"
  28. resources.multidb.db2.host = "example.com"
  29. resources.multidb.db2.username = "dba"
  30. resources.multidb.db2.password = "notthatpublic"
  31. resources.multidb.db2.dbname = "db2"
  32. resources.multidb.db2.default = true
  33. ]]></programlisting>
  34. </example>
  35. <example id="zend.application.available-resources.multidb.retrieveSpecificDb">
  36. <title>Récupérer un adaptateur de bases de données spécifique</title>
  37. <para>
  38. Lorsque vous utilisez ce plugin de ressource, vous aurez sans doute besoin de
  39. récupérer un adaptateur spécifique. Ceci peut être réalisé en utilisant la
  40. méthode <methodname>getDb()</methodname>. La méthode
  41. <methodname>getDb()</methodname> retourne l'instance d'une classe qui étend
  42. <classname>Zend_Db_Adapter_Abstract</classname>. Si vous n'avez pas activé
  43. un adaptateur par défaut, une exception sera levée lorsque vous appellerez
  44. cette méthode sans lui fournir de paramètre.
  45. </para>
  46. <programlisting language="php"><![CDATA[
  47. $resource = $bootstrap->getPluginResource('multidb');
  48. $db1 = $resource->getDb('db1');
  49. $db2 = $resource->getDb('db2');
  50. $defaultDb = $resource->getDb();
  51. ]]></programlisting>
  52. </example>
  53. <example id="zend.application.available-resources.multidb.retrieveDefaultDb">
  54. <title>Récupérer l'adaptateur de base de données par défaut</title>
  55. <para>
  56. De plus, vous pouvez récupérer l'adaptateur par défaut en utilisant la méthode
  57. <methodname>getDefaultDb()</methodname>. Si vous n'avez pas activé d'adaptateur
  58. par défaut, le premier configuré sera retourné. Si vous spécifiez
  59. <constant>FALSE</constant> en tant que premier paramètre, alors vous récupérez
  60. <constant>NULL</constant> si adaptateur par défaut n'est configuré.
  61. </para>
  62. <para>
  63. Ci-dessous vous avez un exemple qui suppose que le plugin de ressource Multidb
  64. a été configuré avec l'exemple <acronym>INI</acronym> ci-dessus&#160;:
  65. </para>
  66. <programlisting language="php"><![CDATA[
  67. $resource = $bootstrap->getPluginResource('multidb');
  68. $db2 = $resource->getDefaultDb();
  69. // Même config, mais maintenant sans adaptateur par défaut :
  70. $db1 = $resource->getDefaultDb();
  71. $null = $resource->getDefaultDb(false); // null
  72. ]]></programlisting>
  73. </example>
  74. </sect2>