1
我想知道如果這是一個好主意,在模型的PHP文件中註冊一個Model類作爲CakeEventListener。註冊一個模型作爲一個事件監聽器
例如,如果我創建了一個名爲Document的模型來實現偵聽器,並且在Document.php的底部,我將其註冊爲一個偵聽器。
class Document extends AppModel implements CakeEventListener
{
.....
}
CakeEventManager::instance()->attach(ClassRegistery::init('Document'));
我的問題是關於nexted調用ClassRegistery::init('Document')
,如果上面會引起Document
兩個實例被創建。
例如,假設我在我的控制器中有以下內容。
class DocumentsController extends AppController
{
public function index()
{
$model = ClassRegistery::init('Document');
.....
Document
實例化了多少次?
- 第一次從控制器調用
ClassRegistery::init('Document')
加載Document.php文件。 - 從Document.php
befoe
底部不會有第二次調用ClassRegistery::init('Document')
第一個調用已完成?
這會以某種方式在CakePHP中註冊註冊表嗎?
謝謝,但如果我把它放在構造中,那麼我會從執行:: init()調用中調用:: init()。你明白嗎?這就是爲什麼我想知道這是否是一個問題。 – cgTag 2013-02-15 18:24:15
如果您傳遞'$ this'而不是使用類註冊表來重新初始化它,則不適用。 – jeremyharris 2013-02-15 18:50:08