mageno2在很多地方使用了觀察者模式,方便解耦和擴充套件 ,典型的有在註冊成功後會發布customer_register_success事件
在customer/controller/account/createpost檔案可以檢視到
$this
->
_eventmanager
->
dispatch
('customer_register_success',[
'account_controller'
=>
$this
,'customer'
=>
$customer])
;
在這裡發布了乙個事假,監聽的話在自己的模組etc/檔案下新建乙個event.xml
<?xml version="1.0"?>
然後在自己模組目錄新建observer檔案 新建乙個上圖instance的檔案
檔案要繼承observerinte***ce介面實現execute方法,簡易例子如下
use
magento\framework\event\observerinte***ce
;class
coupondispatchobserver
implements
observerinte***ce
public
function
execute
(\magento\framework\event\observer
$observer){
$customer
=$observer
->
getdata
('customer'
);
後面就可以在這個方法裡面新增自己要新增的功能 Magento2模式設定
magento有三種執行模式,按效能由低到高,依次為 developer default production 可以使用以下命令檢視當前執行模式 bin magento deploy mode show使用以下命令設定執行模式 bin magento deploy mode set develope...
2 觀察者模式
觀察者模式定義 定義了物件之間一對多的依賴,這樣一來,當乙個物件狀態發生變化時,它所有的依賴者都會收到通知並自動更新。個人理解 主題發生變化時,把變化情況及時通知到訂閱了主題的各個觀察者 訂閱者 觀察者模式設計方式讓主題 與 觀察者 之間實現了松耦合,能夠適應變化。定義主題介面,提供主題必須實現三個...
設計模式 觀察者模式(2)
被觀察物件向觀察者推送主題的詳情資訊時候,不管觀察者是否需要,這些資訊一般是觀察目標物件的全部或者部分資訊。一般這種模型實現通過update object obj 將觀察目標物件傳入進去。被觀察物件通知觀察者時候,只傳送少量的資訊,如果需要詳情資訊時候,被觀察物件也就是觀察目標物件主動到觀察者當中,...