Фреймворк сповіщень Laravel пропонує зручний спосіб розповсюдження повідомлень через різні комунікаційні канали за допомогою єдиного API. Це рішення допомагає розробникам підтримувати стійку взаємодію з користувачами через електронну пошту, збереження в базі даних та різні зовнішні сервіси.
Основи починаються з створення класу сповіщення за допомогою Artisan:
use Illuminate\Notifications\Notification;
use Illuminate\Notifications\Messages\MailMessage;
class OrderShipped extends Notification
{
protected $order;
public function __construct($order)
{
$this->order = $order;
}
public function via($notifiable)
{
return ['mail', 'database'];
}
public function toMail($notifiable)
{
return (new MailMessage)
->subject('Ваше замовлення відправлено')
->greeting('Добрий день, ' . $notifiable->name)
->line('Ваше замовлення #' . $this->order->number . ' було відправлено.')
->action('Відстежити посилку', url('/orders/' . $this->order->id))
->line('Дякуємо за вашу підтримку!');
}
public function toArray($notifiable)
{
return [
'order_number' => $this->order->number,
'tracking_code' => $this->order->tracking_code,
'shipped_at' => now()
];
}
}
Запуск сповіщень у Laravel відбувається легко завдяки інтуїтивно зрозумілому синтаксису. Ви можете надіслати сповіщення відразу або доручити його обробку у фоновому режимі:
$customer->notify(new OrderShipped($order));
Notification::send($customers, new OrderShipped($order));
Розгляньте комплексний сервіс сповіщень для електронної комерції, який адаптується до бізнес-потреб і уподобань користувачів:
class OrderNotificationService
{
public function processShipmentUpdate($order)
{
$notification = new OrderShipped($order);
$order->customer->notify($notification);
if ($order->total_amount > 500) {
$managers = User::where('role', 'manager')->get();
Notification::send($managers, new HighValueShipment($order));
}
}
public function sendWelcomeSequence($user)
{
$user->notify(new WelcomeNotification($user));
$user->notify(
(new GettingStartedTips($user))->delay(now()->addHours(2))
);
}
public function alertSystemMaintenance($maintenance)
{
$activeUsers = User::where('last_seen', '>=', now()->subDays(3))->get();
Notification::send($activeUsers, new MaintenanceNotification($maintenance));
}
public function sendAnonymousAlert($email, $message)
{
Notification::route('mail', $email)
->notify(new AnonymousAlert($message));
}
}
Цей сервіс демонструє, як сповіщення безперешкодно інтегруються у бізнес-процеси, пропонуючи гнучкі механізми доставки та зберігаючи чистий, зрозумілий код.
Система сповіщень Laravel перетворює складну багатоканальну комунікацію на елегантне, масштабоване рішення, яке зростає разом із вашими вимогами до обміну повідомленнями