magento2 觀察者模式的介紹

2021-09-29 10:48:06 字數 950 閱讀 3958

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 將觀察目標物件傳入進去。被觀察物件通知觀察者時候,只傳送少量的資訊,如果需要詳情資訊時候,被觀察物件也就是觀察目標物件主動到觀察者當中,...