2015-10-23 17 views
11

Tôi tìm hiểu về các sự kiện từ yii2 doc.Ví dụ thế giới thực về Sự kiện trong Yii2

Tôi biết cách thức hoạt động, nhưng tôi không biết sử dụng nó ở đâu và cách sử dụng trong quá trình phát triển của tôi. Ví dụ về gửi thông báo qua email nhưng tôi muốn có ví dụ rõ ràng về ý tưởng sử dụng và Làm thế nào để sử dụng nó .

mã của tôi là dưới trong mô hình i viết

const EVENT_NEW_USER = 'new-user'; 
public function sendMailto($event){ 
    $this->sendMail(arguments); 
    // you code 
} 

trong điều khiển:

use yii\base\Component; 
use yii\base\Event; 

public function someaction(){ 
    $model->on(SignUpForm::EVENT_NEW_USER, [$model,'sendMailto'],['auth'=>$model_auth,'user_details'=>$user_details]); 
    $model->trigger(SignUpForm::EVENT_NEW_USER); 
} 
+0

tôi đã nghiên cứu và tìm thấy nhiều ví dụ nhưng tôi không thể tìm thấy khi nào, tại sao và ở đâu để sử dụng nó trong quá trình phát triển. –

+0

Ví dụ này là khá tốt, chính xác những gì bạn không thể hiểu được? – arogachev

+0

Tôi không thể hiểu rằng làm thế nào tôi có thể tái sử dụng nó. ví dụ trước khi lưu là một sự kiện và chúng tôi có thể sử dụng lại sự kiện đó nhiều lần. –

Trả lời

3

tôi sử dụng các sự kiện trong Yii cho lỏng lẻo khớp nối người gửi và người nhận thông điệp bên trong một cài đặt Yii duy nhất (không có distrubution, máy chủ đơn).

Trong phần mềm Yii của tôi, có các mô-đun Yii cho các khối tính năng. Khách hàng nhận được các bộ mô-đun tùy thuộc vào yêu cầu tính năng của họ. Những mô-đun này cần phải giao tiếp với nhau.

Ví dụ:

  • Trong Module 1 (mô-đun người gửi) có cập nhật trạng thái mà cần phải được thông báo cho người sử dụng.
  • Mô-đun 2 (mô-đun nhận) gửi cập nhật trạng thái lên twitter.
  • Mô-đun 3 (mô-đun nhận) gửi cập nhật trạng thái qua email.

Để làm cho mô đun người gửi độc lập với mô-đun nhận, tôi sử dụng cơ chế sự kiện Yii. Vì vậy, Module 1 không cần phải biết bất cứ điều gì về người nhận và các module 2 và 3 không cần bất cứ điều gì về người gửi. Chỉ có một cấu trúc thông báo chung.

Điều đó hoạt động hoàn hảo và các mô-đun được độc lập hai bên.

Các vấn đề liên quan