是否有可能在Laravel刪除我添加的特定事件監聽器,而不是所有監聽器正在偵聽給定事件(這是forget($event)
所做的)?暫時收聽活動,即「unlisten」?
2
A
回答
0
這裏沒有一個簡單的方法 - 在需要相同功能時檢查Illuminate(v4.2)代碼後,我可以看到「忘記」是唯一方法,並且刪除所有偵聽器,事件。
但是,您可以使用getListeners($eventName)
獲取所有偵聽器,處理返回的數組,刪除特定的偵聽器,忘記事件,然後重新偵聽剩餘的偵聽器。非常可怕,會將你的代碼綁定到Event實現的內部結構。
否則,您可以在您的監聽器中標記「從現在開始忽略」消息。
另一個想法是在您的偵聽器之前添加一個偵聽器,並在其事件處理函數中返回false,這甚至會停止傳播!當然這會阻止所有後續用戶接收事件。如果您知道訂閱順序可能會有所幫助,但很麻煩。
這似乎是一個顯而易見的缺失功能,但可能是因爲短期進程的PHP的典型用法。我正在寫一個持續數日的工作,所以我還需要動態地添加/刪除監聽器。 Laravel對靜力學的偏好使得這很困難。
我正在考慮使用「全部重新登錄」例程,它只是忘記所有事件,並重新訂購所有從頭開始使用當前配置。
相關問題
- 1. JS - 鍵盤事件 - 聽/ UNLISTEN
- 2. 聽/ UNLISTEN事件的Java
- 3. GWT - 避免收聽活動
- 4. 收聽Durandal的活動
- 5. 活動收聽廣播接收器
- 6. 收聽活動:用戶::創建
- 7. 在Angular 2中收聽活動
- 8. 在新窗口中收聽活動
- 9. 停止收聽自己的活動?
- 10. Android從庫模塊中收聽活動
- 11. Google地球API:收聽TourPlayer活動
- 12. 隱藏即暫時
- 13. 暫時不可轉動的Android活動?
- 14. react-router browserHistory.listen unlisten
- 15. 傾聽活動
- 16. 暫停的活動
- 17. 暫停請求當應用程序轉到後臺時收聽
- 18. 當活動暫停時Runnable停止
- 19. 活動在暫停時崩潰
- 20. 調用GLSurfaceView.onPause()後活動暫停超時()
- 21. HistoryRecord的活動暫停超時
- 22. 暫時隱藏活動窗口?
- 23. 暫時殺死一個活動
- 24. 如何在進入活動「C」時暫停活動「B」
- 25. 防止主要活動在其他活動打開時暫停?
- 26. Spotify收聽時間
- 27. 啓動Memcached時出錯:未能收聽
- 28. 如何接收CameraActivities導致不同的活動(即不在啓動的活動)?
- 29. 收聽我的活動中的所有按鈕(僅限活動參數)
- 30. 的Android無法暫停活動接收器未註冊