我曾在許多PHP框架中看到過使用「事件管理器」類。 「正常」MVC框架範圍內的事件管理器究竟是什麼,它對整個應用程序提供了什麼?PHP - 什麼是事件管理器?
回答
先了解一下read about event driven programming的基本思路。
我認爲你標記的每個框架都有一個關於事件系統的手冊頁。至少CakePHP has a pretty detailed one關於它的事件系統,它是event manager。它的描述已經是解釋什麼事件管理是成功的一半:
事件管理器是負責跟蹤事件偵聽器, 正確的數據傳遞給他們,併發射它們在正確的 順序,當相關的事件被觸發時。您可以創建多個此對象的 實例來管理本地事件或保留單個實例並將其傳遞給您,以管理您應用中的所有事件。
事件管理器可以附加監聽器或接收器,偵聽或「連接」到事件的對象。當事件被事件管理器觸發並分派時,所有註冊到一個或多個事件的偵聽器都將收到事件對象實例並可以使用它。
小心事件,正確使用他們是偉大的,不當使用它們可以讓你的應用程序難以調試,很難理解的混亂。不要僅僅因爲它們很酷就使用它們,請在應用程序中記錄事件。
Here is an example of how to inject additional fields into a form使用CakePHP事件系統。這個用例可能適合CMS,或者你必須通過插件系統有條件地添加某個表單。
通常,事件管理器允許應用程序的各個部分知道操作。
假設我有一個支付提供商模塊。付款提供商呼叫私人網址以返回付款狀態。一旦我驗證了付款的狀態,我就會發起一個事件來指示已付款。
負責處理交易客戶端的代碼可以監聽這些事件,例如發送客戶已付款的電子郵件並生成發票。
簡而言之,事件管理器提供了一種在應用程序中存儲事件的方式,提供事件驅動的編程。您可以利用已註冊的事件來開發監聽它們並作出相應反應的功能。正確使用時,事件管理器可幫助解耦代碼並使其更加精簡,並且更易於重用。
例如,假設您爲客戶編寫了一個博客模塊,它允許您管理簡單的帖子。如果您在發佈帖子時需要發送推文,您可以註冊發佈帖子時觸發的事件,然後編寫監聽該事件的流程併發送推文。這兩個過程都不需要知道其他過程,因爲從邏輯上講,這不是必需的。兩者都可以單獨開發和測試,但可以一起使用。
- 1. 什麼是php composer?依賴管理器是什麼意思?
- 2. 什麼是hibernate中的事務管理?
- 3. 事件管理php mysql
- 4. 記事本++的插件管理器的服務器URL是什麼?
- 5. 什麼是Visual SourceSafe資源管理器?
- 6. 什麼是發佈管理器?
- 7. 在SOA架構使用事件管理器模塊什麼
- 8. 什麼是最好的開放PHP通訊管理器?
- 9. 事務管理器和數據庫管理器有什麼區別?
- 10. 什麼是SharePoint服務器端文件管理器?
- 11. 爲什麼Domino日誌代理管理器:代理打印:事件ID = 64
- 12. 什麼是Django管理
- 13. 什麼是複雜的事件處理?
- 14. '處理事件'是什麼意思?
- 15. PHP文件管理器
- 16. 事務管理器
- 17. 什麼是瀏覽器事件循環?
- 18. 爲什麼我的jdbc的spring事務管理器不工作?
- 19. 什麼是:管理,:所有在Ruby中做的事情?
- 20. 圖形api資源管理器 - 什麼是「帶」修改器
- 21. 監視Windows資源管理器事件
- 22. VB.NET:建立事件管理器 - 聽衆
- 23. 遞歸SharePoint事件管理器
- 24. 記事本+資源管理器插件
- 25. TOAD for MySQL中的事件管理器
- 26. ZF2共享模塊事件管理器
- 27. 什麼是PHP的解釋器文件?
- 28. 在多處理器上添加事件監聽器。管理器
- 29. 什麼是鍵盤事件
- 30. 什麼是事件句柄?