Створення кросплатформених сповіщень за допомогою Notification Framework у Laravel

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 23 серпня, 2025
Досліджте, як фреймворк сповіщень Laravel спрощує комунікацію через різноманітні платформи за допомогою єдиного API. Чи готові ви дізнатися, як перетворити складні комунікації на ефективне та масштабоване рішення? Читайте далі

Фреймворк сповіщень 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 перетворює складну багатоканальну комунікацію на елегантне, масштабоване рішення, яке зростає разом із вашими вимогами до обміну повідомленнями

Популярні

Logomark Logotype

Журнал аудиту в Laravel

Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту

Logomark Logotype

Простий пакет RabbitMQ для Laravel

Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!

Logomark Logotype

Оптимізація запитів до бази даних за допомогою скорочених методів Laravel

Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!