OKyJIucT
1/26/2017 - 8:03 AM

События

События

// вешаем обработчик в модели
const EVENT_NEW_USER = 'newUser';

// sendMail - статический метод, который вызывается при срабатывании события
public function init()
{
    $this->on(self::EVENT_NEW_USER, [$this, 'sendMail']);
}

public static function sendMail()
{
    mail('okyjiuct@gmail.com', 'test title', 'test content');
}


// инициализация события 
$test = new Test();
$test->trigger(Test::EVENT_NEW_USER);

==============================================================

// добавляем параметр
class MessageEvent extends Event
{
    public $message;
}

// передаем его
$event = new MessageEvent;
$event->message = ['item_id' => $item->id];
$this->trigger(self::EVENT_ITEM_PUT_ON, $event);

// используем
public function test($event)
{
    echo $event->message;

}