我想在onBeginRequest事件中運行一些代碼。
我該怎麼做?我假設我不想在覈心庫代碼中添加這個。
我是一個Yii中完全小白如何在Yii中使用事件
8
A
回答
15
如果你想使用onBeginRequest和onEndRequest你可以做到這一點通過加入下一行到您的配置文件:
return array (
...
'onBeginRequest'=>array('Y', 'getStats'),
'onEndRequest'=>array('Y', 'writeStats'),
...
)
,或者你可以做它內嵌
Yii::app()->onBeginRequest= array('Y', 'getStats');
Yii::app()->onEndRequest= array('Y', 'writeStats');
其中Y
是一個類名getStats
和writeStats
是這個類的方法。 現在想象你有聲明如下一類Y
:
class Y {
public function getStats ($event) {
// Here you put all needed code to start stats collection
}
public function writeStats ($event) {
// Here you put all needed code to save collected stats
}
}
所以在每次請求這兩種方法都會自動運行。當然你可以想「爲什麼不簡單地重載onBeginRequest方法?」但首先事件允許你不擴展類來運行一些重複的代碼,並且它們允許你執行在不同地方聲明的不同類的不同方法。 所以,你可以在你的應用程序的任何其他部分添加
Yii::app()->onEndRequest= array('YClass', 'someMethod');
與以前的事件處理一起,您將得到請求處理後同時運行Y->writeStats
和YClass->someMethod
。這與行爲允許您創建幾乎任何複雜性的擴展組件,無需更改源代碼,也不需要擴展Yii的基類。
1
我相信你可以在你的文件,這樣做幾乎任何地方的任何輸出開始之前,所以應該在控制器,視圖或自定義類的工作,通常位於「保護「Yii網絡應用程序中的」文件夾「。僅供參考,這些文件不是核心文件,並且可以(幾乎)自由編輯,與Yii框架文件相同(如bootstrap index.php文件中的「$ yii」var所引用的那樣)。
的功能如下所示:
Yii::app()->onbeginRequest = create_function('$event', 'return function_name_a();');
Yii::app()->onendRequest = create_function('$event', 'return function_name_b();');
相關問題
- 1. Yii中的事件是什麼?如何在Yii中使用事件?
- 2. 如何提高Yii中的CComponent事件
- 3. 如何使用CStatRelation Yii中
- 4. Yii中的AJAX事件
- 5. yii如何註冊onbeforesave事件模型?
- 6. 如何在Yii $標準中使用DATE_ADD?
- 7. 如何在Yii中使用Markdown類
- 8. 如何在yii中使用ffmpeg
- 9. 如何在Yii模塊中使用main.php
- 10. 如何在yii中使用openid?
- 11. 如何在Yii框架中使用jQuery?
- 12. 如何在yii CDbCriteria中使用IFNULL?
- 13. 如何在yii中使用Ajax,jQuery
- 14. 如何在Yii中使用NLSClientScript擴展?
- 15. Yii - 如何在config/main中使用類?
- 16. 如何在Yii中使用CFileCache和Memcache
- 17. 如何在Yii中使用JSON
- 18. 如何在Yii中使用saveChildModel()
- 19. 事件日曆 - Yii
- 20. 如何在Yii的模塊中註冊事件?
- 21. 如何在Yii中創建日曆事件?
- 22. 如何在Yii中使用yii \ base \ model:getAttributes()方法?
- 23. 如何在Yii中正確使用HTML2PDF和Yii-PDF?
- 24. Yii - 在Yii中使用備用視圖文件用戶模塊
- 25. 如何在onmouseleave事件中使用RGBA?
- 26. 如何在Ext.Message.Box中使用keydown事件
- 27. 如何使用事件在Flex中
- 28. 如何在ViewModel中使用RadDragAndDrop事件
- 29. 如何在AngularJS中使用jsTree事件
- 30. 如何在Flex中使用事件?
那麼在項目結構中,如果我將它添加到配置文件中,那麼clas將會生存在哪裏? – RicardoE