我正在構建一個MVC應用程序(使用Zend Framework)。MVC:在哪裏觸發用戶註冊電子郵件
當用戶第一次註冊中應用程序發送一封電子郵件。我的問題是,我應該在哪裏觸發此電子郵件?模型還是控制器?我的想法如下:
在某些方面,模型是有意義的,因爲發送註冊電子郵件是我業務邏輯的一部分。用戶必須點擊郵件中的鏈接才能驗證其電子郵件地址。
但是,把它在模型中,我是「拖累」的模型。模型的註冊用戶操作僅適用於需要爲每次註冊發送電子郵件的應用程序。
相反,通過控制器內觸發的電子郵件,我的控制器將成爲一個垃圾箱「胖」,但我的模型多一點「細粒」。
我寫這實際上配置,併發送電子郵件中的電子郵件服務,我認爲這是一個很好的設計決策。我真的只是問我應該從哪裏調用此服務。
您的想法是非常感謝!
這不回答。問題即使OP決定使用你的產品,他仍然需要知道何時調用它 –
這是我的觀點 - 。他不會需要調用它的總線(無論總線架構,他可能)將共同配置事件發生時會觸發的事件,例如用戶被插入到數據庫中。這省略了手動觸發電子郵件的必要。同樣在我的第二次消解中,再也沒有必要打電話了。該服務將負責查找從數據庫發送的電子郵件。他可能需要在這種情況下,是一個自定義事件設置偵聽新項目被插入到數據庫中,並生成培訓相關電子郵件到數據庫 –
也許你是一個點超出了我的把握。然而,當你說「巴士...將配置一個事件」時,你似乎正在精確地描述OP引用的內容:時間/事件/動作/無論電子郵件服務應該被激活。如果電子郵件發件人是外部服務或內置在框架中,這並不重要;觸發它的任務是一樣的。至於你的第二點,外部服務是不必要的開銷。 OP沒有要求額外的電子郵件相關功能,所以爲此配置一個監聽器看起來像是矯枉過正。 –