Laravel 개발: Laravel 알림을 사용하여 알림을 보내는 방법은 무엇입니까?

王林
풀어 주다: 2023-06-13 14:55:46
원래의
1864명이 탐색했습니다.

Laravel은 웹 애플리케이션 구축을 위한 현대적이고 우아하며 기능이 풍부한 구문을 제공하는 널리 사용되는 PHP 웹 애플리케이션 프레임워크입니다. Laravel 프레임워크는 알림 전송을 포함하여 광범위한 도구와 기능을 제공합니다. 알림은 사용자나 다른 시스템에 시각적 또는 음성 메시지를 보내는 기술입니다. 알림은 간단한 경고일 수도 있고 복잡한 지침일 수도 있으며, 장기 실행 작업 중에 사용할 수 있도록 비동기식일 수도 있습니다.

이 글에서는 Laravel 알림을 사용하여 알림을 보내는 방법을 알아봅니다. 또한 알림 유형, 이벤트 및 채널에 대해서도 살펴보겠습니다. 우리의 목표는 Laravel 알림을 사용하여 알림을 보내고 다양한 유형을 이해하는 간단한 웹 애플리케이션을 만드는 것입니다.

전제 조건

이 기사의 내용을 시작하기 전에 다음 요구 사항이 충족되는지 확인해야 합니다.

  1. Laravel을 로컬 또는 서버에 설치했습니다.
  2. 당신은 이미 Laravel 프레임워크에 익숙하고 컨트롤러, 경로 및 뷰를 생성하는 방법을 이해하고 있습니다.
  3. 데이터베이스(MySQL, PostgreSQL 등)를 설치하고 Laravel 설정 파일에서 설정했습니다.
  4. 이메일 관련 구성을 설정했습니다(일부 알림 유형에 필요함).

Laravel 알림

Laravel 알림은 알림 처리를 단순화하는 강력한 클래스입니다. 이메일, SMS, 메일, Slack과 같은 인스턴트 메시징 앱을 포함한 여러 채널로 알림을 보낼 수 있습니다. Laravel 알림을 사용하면 지정된 채널로 알림을 생성하고 사용자에게 빠르게 보낼 수 있습니다. 알림 전송 시작이 지연되는 것을 방지하기 위해 알림을 비동기식으로 처리할 수 있습니다.

Laravel 알림은 기본적으로 다음 두 부분으로 구성됩니다.

  1. 메시지 자체: 애플리케이션에서 알림을 선언하고 정의하는 데 사용되는 메시지 본문입니다.
  2. 채널: 다양한 유형의 알림 메시지를 보내고 처리하는 데 사용됩니다.

대부분의 개발자는 일반적으로 알림을 보내야 할 때 메서드가 호출되도록 알림 유형을 애플리케이션 내 모델 메서드로 정의합니다.

Laravel에서 알림 만들기

Laravel의 알림은 기본적으로 프레임워크의 IlluminateNotificationsNotification 기본 클래스를 상속하는 간단한 PHP 클래스입니다. 각 알림은 이메일, Slack, 사용자 정의 웹훅을 포함한 여러 채널을 통해 전송될 수 있습니다.

알림을 사용하려면 애플리케이션에서 알림 클래스를 정의하세요. 알림 클래스는 알림 메시지가 채널로 전송되기 전에 메시지 인스턴스로 생성되는 알림의 서식 있는 텍스트 메시지(메시지 본문)를 나타냅니다. 그런 다음 처리를 위해 다른 채널을 통해 이 알림을 보냅니다.

예를 들어 사용자에게 구독이 곧 만료됨을 알리는 메시지 알림을 만들 수 있습니다. 이 알림을 보내려면 다음과 같이 Lavarel 애플리케이션에서 새 알림 클래스를 만들 수 있습니다.

php artisan make:notification SubscriptionEnding
로그인 후 복사

알림을 통해 이메일 보내기

이제 SubscriptionEnding 알림을 만들었으므로 이메일을 통해 알림을 보낼 수 있습니다.

이메일을 보내려면 Laravel의 메일 시스템을 구성해야 합니다. Artisan을 사용하면 애플리케이션에서 메일 서비스를 사용하기 위해 SMTP/IMAP 설정이 올바른지 확인할 수 있습니다.

php artisan config:cache
로그인 후 복사

이제 이메일 관련 설정을 구성했으므로 알림 클래스에서 toMail() 메서드를 구현해야 합니다. 이 메서드로 이메일 템플릿을 작성합니다.

class SubscriptionEnding extends Notification
{
    use Queueable;

    public function __construct($data)
    {
        $this->data = $data;
    }
  
    public function via($notifiable)
    {
        return ['mail'];
    }
    
    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->line('Hi ' . $this->data['name'] . ', your subscription is about to end in ' . $this->data['days'] . ' days. Please log in to your account and renew your subscription to continue using our services.')
                    ->action('Renew Subscription', url('/subscription'))
                    ->line('Thank you for using our service.');
    }
  
    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}
로그인 후 복사

이메일 템플릿을 사용자 정의해야 하는 경우 Laravel 메일 보기를 사용하여 자신만의 HTML/CSS 템플릿을 작성할 수 있습니다:

public function toMail($notifiable)
{
    return (new MailMessage)->markdown('emails.subscription-ending', [
        'name' => $this->data['name'],
        'days' => $this->data['days']
    ]);
}
로그인 후 복사

마지막 단계는 특정 사용자에게 알림을 보내는 것입니다. 예:

$user = User::find(1)->notify(new SubscriptionEnding(['name' => 'John Doe', 'days' => 5]));
로그인 후 복사

구독이 곧 만료될 때 이메일 알림을 성공적으로 보냈습니다. . 다음 단계를 수행하면 쉽게 사용자 정의 알림을 만들고, 사용자 정의 채널과 메시지를 작성하고, 이를 통해 이메일, 문자 메시지 및 기타 알림을 보낼 수 있습니다.

경로 모델 바인딩에 대한 알림 사용

경로 모델 바인딩은 Laravel 모델의 매우 강력한 기능 중 하나입니다. 소위 경로 바인딩을 사용하면 Laravel이 모델과 일치하는 다른 바인딩을 자동으로 찾아 컨트롤러 메서드에 자동으로 주입할 수 있습니다.

Laravel에서는 호출 모델 인스턴스를 경로에 바인딩하는 것을 "경로 모델 바인딩"이라고 합니다. 대부분의 경우 라우팅에서 특정 식별자를 사용하여 객체를 찾고 검색하고 가져옵니다. 그러나 경로 모델 바인딩에서 Laravel은 모델을 경로의 매개변수에 자동으로 로드합니다.

Laravel 알림은 경로 모델 바인딩을 사용할 수도 있습니다. 이는 라우팅 모델 바인딩에 알림을 사용하는 방법을 보여주는 간단한 예입니다.

Artisan 정적 명령을 사용하여 샘플 컨트롤러와 경로를 빠르게 생성할 수 있습니다:

php artisan make:controller UserController --resource --no-model
로그인 후 복사

모델에서 컨텍스트 정의:

class User extends Authenticatable
{
    public function routeNotificationForMail()
    {
        return $this->email;
    }
}
로그인 후 복사

다음으로 라우팅 파일에서 이를 정의해야 합니다. 예를 들어 경로/웹에 경로를 배치합니다. .php 파일에서:

Route::get('users/{user}', 'UserController@show');
로그인 후 복사

컨트롤러 메소드에서 알림 구현:

class UserController extends Controller
{
    public function show(User $user)
    {
        $details = [
            'title' => '你好啊!',
            'body' => '感谢你使用我们的系统!'
        ];
  
        $user->notify(new AppNotificationsSimpleNotification($details));
  
        return view('users.show', ['user' => $user]);
    }
}
로그인 후 복사

이렇게 하면 사용자에게 알림이 전송되며 알림에는 제목과 본문이 포함되어야 합니다.

결론

Laravel 알림은 웹 애플리케이션에 알림 기능을 추가하는 효과적인 방법입니다. Laravel의 강력한 시스템을 사용하면 알림을 쉽게 정의하고 처리할 수 있으며 다양한 채널을 사용하여 알림을 보낼 수 있습니다. 이 글에서는 Laravel 알림을 사용하여 이메일, SMS, 메일, Slack을 포함한 알림을 보내는 방법을 배웠습니다. 또한 알림 유형, 이벤트 및 채널을 포함하여 Laravel 알림의 다른 기능도 살펴보았습니다.

위 내용은 Laravel 개발: Laravel 알림을 사용하여 알림을 보내는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿