事件(Events)
事件可以将自定义代码“注入”到现有代码中的特定执行点。 附加自定义代码到某个事件,当这个事件被触发时,这些代码就会自动执行。
Yii 引入了名为 yii\base\Component 的基类以支持事件。 如果一个类需要触发事件就应该继承 yii\base\Component 或其子类。
假设订单支付成功后,通过事件通知订单修改状态,代码实现如下。本示例基于Yii2.0
订单类:
<?php namespace common\services; use Yii; use yii\base\Component; class OrderService extends Component { /** * 修改订单状态 * @param $event */ public function changeStatus($event) { $orderId = $event->data['orderId']; echo('orderId:' . $orderId . ' change order status'); } } 支付类:
<?php namespace common\services; use common\services\OrderService; use Yii; use yii\base\Component; class PayService extends Component { const EVENT_PAY_SUCCESS = 'pay_success'; /** * 绑定事件 * @param \common\services\OrderService $orderService * @param array