Tôi ở cùng bạn Justin.
Tôi có một loạt các Mô hình kích hoạt email dựa trên một số hành động nhất định có thể đến từ Người dùng, Quản trị viên và tập lệnh shell cho các quy trình tự động.
Sẽ dễ dàng hơn để tập trung phản hồi email trong Mô hình (như khi bản ghi Đơn đặt hàng bị 'hủy') thay vì viết lại email ở nhiều vị trí.
Ngoài ra, tôi có các quy trình tự động trong Mô hình xử lý một số 'logic' cốt lõi mà xếp vào các mô hình hasOne, dependsTo hoặc hasMany khác là các quy tắc biz. Ví dụ, một script shell crontabbed gọi Offer-> expire() để 'hết hạn' một Offer sau đó gọi Offer-> make() để thực hiện một Offer khác, nhưng nếu nó không thể sau đó nó gọi Request-> hết hạn() để 'hết hạn' yêu cầu ban đầu. Email phải được gửi đến Người nhận ưu đãi đã hết hạn đầu tiên, cho bất kỳ người nhận Ưu đãi mới và/hoặc người yêu cầu nếu nó hết hạn. Chúng có thể được gọi bởi shell crontabbed hoặc bởi Users hoặc bởi Admins, người có thể quản lý các Requests và Offer một cách thủ công. Tất cả đều sử dụng Bộ điều khiển hoặc giao diện khác nhau.
Đây là những gì tôi đã làm và có thể gọi nó bên trong mô hình và bộ điều khiển:
if(empty($this->MailsController)) {
App::import('Controller','Mails');
$this->MailsController = new MailsController();
$this->MailsController->constructClasses();
$this->MailsController->Email->startup($this->MailsController);
}
Bây giờ tôi có thể gọi đây là từ chỉ là về bất cứ nơi nào và tập trung tất cả các logic cho những dữ liệu để tìm(), những gì email để tạo ra, mà gửi nó cho vv qua sau đây gọi là bên trong Model:
$this->MailsController->orderMail($user_id,$this->id,$mode);
Vì tất cả các logic email về cơ bản là gọi bằng các mô hình gián tiếp thông qua MailsController, tôi sẽ cung cấp cho mã rscherer của một sự cố gắng.
Hope this helps, oh4real
Nguồn
2009-04-05 18:23:39
Cảm ơn! "Vui lòng nhập ít nhất 10 ký tự". là một yêu cầu câm. – Justin
Vâng, tôi không thể nói lời cảm ơn. Làm phiền. – Justin
tôi có thể thêm mô hình này vào mô hình ứng dụng thay thế không? –