Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Jak użyć w praktyce Zend_Db_Table korzystające z wielu baz danych
Forum PHP.pl > Forum > PHP > Frameworki
Martio
Jak użyć w projekcie klasy modelu Zend_Db_Table korzystające z kilku baz danych? Do powiązania klasy Zend_Db_Table z właściwą tablicą i właściwą bazą danych korzysta się m.in. z zmiennych chronionych $_schema i $_name np. (bug_db.bugs).

Za: http://framework.zend.com/manual/en/zend.d....table.defining

Example 9.69. Declaring a table class with schema

  1. <?php
  2. class Bugs extends Zend_Db_Table_Abstract
  3. {
  4. protected $_schema = 'bug_db';
  5. protected $_name  = 'bugs';
  6. }
  7. ?>


Klasa Zend_Db_Table wymaga przekazania obiektu adaptera z nawiązanym połączeniem. Robię to w ten sposób w jednym z pluginów:

  1. <?php
  2. $db = Zend_Db::factory('PDO_MYSQL', $options);
  3. Zend_Db_Table_Abstract::setDefaultAdapter($db);
  4. ?>


Jednak jest tam przekazane jedno połączenie z jedną konkretną bazą danych.

Pytanie: czy można jakoś uniwersalnie przekazać połączenia dla wszystkich potrzebnych baz danych?

Ręczne przekazywanie połączenia jak to nie wchodzi w grę:

  1. <?php
  2. $db = Zend_Db::factory('PDO_MYSQL', $options);
  3.  
  4. $table = new Bugs(array('db' => $db));
  5. ?>
eai
Możesz skorzystać z funkcji setDefaultAdapter ($db) w konstruktorze modelu. Najlepiej adaptery $db trzymać w rejestrze w bootscrapie, a potem się do nich odwoływać w modelu. Myśle że to rozwiązanie Cię zadowoli
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.