Saya mengembangkan modul yang akan sangat bergantung pada permintaan basis data eksternal. Apakah ada praktik terbaik untuk mendefinisikan dan menggunakan koneksi basis data eksternal di seluruh modul?
Halaman ini memberi tahu saya cara membuat koneksi, tetapi tidak di mana harus meletakkannya di modul (pengait spesifik?) Jadi saya hanya perlu mendefinisikannya sekali. Juga, apakah selalu diperlukan untuk melakukan "db_set_active ('YourDatabaseKey');" atau bisakah saya memberikan argumen yang akan mengatur db untuk digunakan? Saya menggunakan Drupal 7.
Jawaban:
Tidak ada tempat khusus untuk meletakkan kode ini (pengait atau modul), Anda cukup meletakkannya di tempat yang Anda butuhkan.
Jadi itu harus tepat sebelum pertanyaan Anda pada database lain dan setelahnya untuk mengatur kembali DB default.
Jika semua modul Anda akan bergantung pada DB eksternal, letakkan saja di awal fungsi pertama yang dipanggil untuk modul Anda dan di akhir fungsi terakhir.
Tentu saja setiap fungsi Anda harus dijalankan pada DB eksternal dan tidak ada yang harus meminta database default tanpa beralih kembali.
Kode berikut ini akan gagal:
Anda harus beralih bolak-balik:
sumber
Anda harus menambahkan
settings.php
berada di/sites/default/
dalam sintaks berikut// Drupal 6
// Drupal 7
Dan setelah pengaturan ini, Anda dapat menggunakan db_set_active () untuk berpindah antar database.
sumber