Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZF] Jak użyć w praktyce Zend_Db_Table korzystające z wielu baz danych
Martio
post 11.09.2007, 12:09:46
Post #1





Grupa: Zablokowani
Postów: 167
Pomógł: 2
Dołączył: 15.02.2004

Ostrzeżenie: (30%)
XX---


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. ?>


Ten post edytował Martio 11.09.2007, 12:11:12
Go to the top of the page
+Quote Post
eai
post 12.09.2007, 12:43:28
Post #2





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

Ostrzeżenie: (0%)
-----


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

Ten post edytował eai 12.09.2007, 12:44:35
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 9.06.2025 - 14:29