Yii的module功能確實很方便,但現在的問題在於,我需要為每個module單獨指定一個數據庫連接,這樣我就可以將不同的系統整合在一起了。找了不少資料,好象都沒有這樣類似的功能。master/slave之類倒是有不少類似的整合方案的。
測試了一下,發現可以這樣操作,即在全局配置文件中的module裡為module加上components中加上db,然後就基本OK了。但即使這樣,你還是會發現不太正常,會提示db不存在,其實需要在這個db數組中加上class=>CDBconnection就一切OK了。會自動加載的哦。(爛桔在這裡幫了不少忙)
然後數據連接就是Yii::app()->getModules('modulename')->db。
【不過他在這裡說的是findModules,我看了一下,getModules就直接可以用了。HOHO】
如果你有master和slave,也可以按照這樣的配置,然後再在onBeforeFind方法裡設定db=Yii::app()->getModules('module')->readerDb之類的。並在onAfterFind後再置 db為write的鏈接.
如果有多個slave,又想使用同一個slave緩存,則可以先隨機取得slave的名稱。然後存入session,然後再指定鏈接。這樣,每一個用戶使用的slave就會是唯一的。其實提高了效率