Tworzę moduł, który będzie w dużej mierze opierał się na zapytaniach do zewnętrznych baz danych. Czy istnieje najlepsza praktyka definiowania i korzystania z zewnętrznego połączenia z bazą danych w całym module?
Ta strona mówi mi, jak nawiązać połączenie, ale nie wiem, gdzie umieścić go w module (konkretny haczyk?), Więc muszę to zdefiniować tylko raz. Czy zawsze konieczne jest wykonanie polecenia „db_set_active ('YourDatabaseKey');” lub czy mogę przekazać argument, który ustawi db do użycia? Używam Drupala 7.
Odpowiedzi:
Nie ma konkretnego miejsca na umieszczenie tego kodu (haka lub modułu), wystarczy umieścić go tam, gdzie jest potrzebny.
Powinien więc przejść tuż przed twoimi zapytaniami do innej bazy danych i zaraz po tym, aby przywrócić domyślną bazę danych.
Jeśli cały twój moduł będzie polegał na zewnętrznej bazie danych, po prostu umieść go na początku pierwszej funkcji wywoływanej dla twojego modułu i na końcu ostatniej funkcji.
Oczywiście każda twoja funkcja powinna być wykonywana na zewnętrznej bazie danych i nic nie musi przesyłać zapytania do domyślnej bazy danych bez przełączania się z powrotem.
Następujący kod nie powiedzie się:
Powinieneś przełączać się tam iz powrotem:
źródło
Trzeba będzie dodać do
settings.php
znajdującego się/sites/default/
w następującej składni// Drupal 6
// Drupal 7
Po tych ustawieniach możesz użyć db_set_active (), aby przełączać się między bazami danych.
źródło