Буквально говоря, это не что иное, как мониторинг события.
Сценарий логистической доставки: У меня есть небольшая программа для всех. Пользователям необходимо доставлять товары в фоновом режиме после размещения заказов. После доставки я хочу отправить уведомление о модуле, чтобы напомнить пользователям. Я думаю, что если пользователи не войдут в Wechat или не закроют запрос на сообщение, то будет невозможно сообщить пользователям, что товары были доставлены в режиме реального времени. Я решаю отправить его повторно. Добавьте короткое сообщение, чтобы проинформировать пользователя. С уведомлением о модуле я не думаю, что мне достаточно SMS-уведомления.. Затем я продолжаю добавлять.. Обычно мы пишем следующее:
Это не невозможно написать таким образом, но с появлением все большего количества логических функций контроллер будет только раздуваться, и его будет нелегко поддерживать в дальнейшем. В это время некоторые люди могут сказать: “Тогда я могу инкапсулировать это, да, вы можете инкапсулировать это, а затем вы можете использовать шорткод для достижения этой цели”. Но в реальном проекте это будет связано с разработкой нескольких человек, что неудобно. Поэтому рекомендуется использовать ларавель собственный “мониторинг событий”…
3.1 Откройте терминал – > Перейдите в корневой каталог проекта – > Используйте команду artisan для создания файлов прослушивателя событий
php artisan make:event OrderEvent
После выполнения команды я обнаружил дополнительное событие заказа. PHP-файл в каталоге приложений/событий.
Мы можем открыть его и взглянуть на него.
Просто измените конструктор, потому что тогда мы сможем передать пользователя, который покупает товар.
user = $user;
}
/**
* Get the channels the event should broadcast on.
*
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn()
{
return new PrivateChannel('channel-name');
}
}
3.2 Обязательные События
Откройте приложение/Провайдеров/Службу мероприятий Provider.php файл и найдите атрибут участника слушайте:
protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
],
];Чтобы связать события, измените их следующим образом:
protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
],
'App\Events\OrderEvent' => [
'App\Listeners\sendModel',
'App\Listeners\sendPhone',
]
];Затем откройте терминал и выполните команду artisan для создания файла прослушивания
php artisan event:generate
Затем мы можем найти еще два файла в файле app/Listeners.
Откройте два файла и измените их по очереди следующим образом:
sendModel.php:
user; // @todo: current user
//@ todo: Send message template logic
Dump ('send message template successful');
}
}sendPhone.php:
user; // @todo: current user
//@ todo: Send SMS messages
Dump ('Successful sending of SMS messages');
}
}3.3 Наконец, мы открываем OrderController.php чтобы прочитать:
3.4 Маршрутизация привязки
Route::get('/sendGoods','[email protected]');3.5 Результаты Маршрутизации доступа:
Является ли это простым, легким в обслуживании, многое из этого не будет маленьким партнером, чтобы попробовать это! Если это вам полезно, пожалуйста, сделайте мне комплимент. Спасибо.