Laravel 알림 시스템 만들기

Laravel이 유행하는 중요한 원인 중 하나는 흔히 볼 수 있는 개발 문제 (예를 들어 신분 검증, 연락처 폼, 세션, 대기열, 루트와 캐시 등) 에 실행 가능한 해결 방안을 제공했기 때문이다.
Laravel 프로젝트에서 흔히 볼 수 있는 프로젝트 요구 사항 중 하나는 알림 생성입니다.본고에서 저는 Laravel 알림 시스템을 만들어서 해결 방안을 소개할 것입니다.이 시스템에서는 사용자가 이 페이지에 접근할 때마다 전자 우편으로 알림을 보냅니다.거래의 매력을 높이기 위해, 나는 또한 슬랙을 통합하여 슬랙 채널을 설정하는 통지를 할 것이다.
Laravel의 알림 시스템은 모든 알림을 위한 클래스를 설정하여 알림을 생성하기 쉽기 때문이다.이 유형은 특정 채널을 사용하여 사용자에게 메시지에 대한 정보를 알리는 방법을 정의합니다.

Laravel 애플리케이션 설치


Laravel 응용 프로그램을 신속하게 설치하기 위해 Cloudways에서 사용했습니다Laravel Hosting.Cloudways에 등록하고 몇 번만 클릭하면 Laravel 프로그램을 무료로 설치할 수 있습니다.

사용자 테이블 만들기


설치 후 사용자 테이블을 만듭니다.SSH 터미널을 시작하고 서버 관리 탭에서 찾을 수 있는 기본 자격 증명을 사용하여 서버에 로그인합니다.

이제 다음 명령을 입력하여 응용 프로그램의 루트 디렉터리로 이동합니다.

cd applications

cd applicationname/public_html

php artisan migrate

사용자는 데이터베이스에서 생성됩니다.
이제 시스템이 사용자에게 알림을 보낼 수 있도록 기록을 추가합시다.데이터베이스 관리자로 이동하여 테이블에 간단한 기록을 추가합니다.시스템이 알림을 이 전자 우편 주소로 보내기 때문에 유효한 전자 우편 id를 추가해야 합니다.

현재 사용자 모델이 만들어졌으니 한번 봅시다.응용 프로그램/사용자로 이동합니다.다음 코드가 있는 php:

<?php

namespace App;

use Illuminate\Notifications\Notifiable;

use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable

{

   use Notifiable;

   protected $fillable = [

       'name', 'email', 'password',

   ];

   protected $hidden = [

       'password', 'remember_token',

   ];

}
만약 네가 자세히 관찰한다면, 누군가가 응당 제출해야 할 특징을 사용한 것을 발견할 수 있을 것이다.모델을 알림으로 만들고 싶을 때마다 조명 가져오기\알림\알림 가능;모델의 피쳐입니다.
일부 통지 채널은 보고서에 어떤 정보를 제공해야 한다는 것을 주의해야 한다.예를 들어 메일 채널은 알림을 보내는 전자 우편 주소를 알기 위해 모델에'이메일'속성을 가지고 있기를 희망한다.

전자 메일로 알림


SSH를 반환하여 응용 프로그램의 루트 디렉토리로 이동하고 다음 명령을 수행합니다.

php artisan make:notification Newvisit
이제 app/Notifications/Newvisit로 이동합니다.php.이 파일에서 다음 코드를 찾을 수 있습니다.

<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;

use Illuminate\Notifications\Notification;

use Illuminate\Contracts\Queue\ShouldQueue;

use Illuminate\Notifications\Messages\MailMessage;

class Newvisit extends Notification

{

   use Queueable;

   public function __construct()

   {

       //

   }

   public function via($notifiable)

   {

       return ['mail'];

   }

   public function toMail($notifiable)

   {

       return (new MailMessage)

                   ->line('The introduction to the notification.')

                   ->action('Notification Action', url('/'))

                   ->line('Thank you for using our application!');

   }

   public function toArray($notifiable)

   {

       return [

           //

       ];

   }

}
이 코드를 이해합시다.우선, 그 안에 모든 관련 데이터를 주입하는 구조 함수가 있다.
public function via($notifiable)

   {

       return ['mail'];

   }
그리고,via () 방법이 있습니다. 모든 실례에 알림을 보내는 데 사용할 알림 방법을 선택할 수 있습니다.
그리고 *toMail()** 메서드가 있으며 이 메서드는 세 가지 속성을 반환합니다.첫 번째는 라인입니다. 전자메일의 시작 본문을 지정합니다.그런 다음 버튼 이름과 버튼이 리디렉션될 URL을 지정하는 동작이 있습니다.마지막으로 전자 우편의 끝 단락을 지정하는 줄이 하나 더 있습니다.다음은 예제 출력입니다.

       ->line('The introduction to the notification.')

       ->action('Notification Action', 'https://laravel.com')

       ->line('Thank you for using our application!');

Laravel에서 이메일로 알림 보내기


routes/web로 이동합니다.php 및 파일에 다음 코드를 붙여넣습니다.

<?php

use App\Notifications\Newvisit;

Route::get('/', function () {

$user = App\User::first();

$user->notify(new Newvisit("A new user has visited on your application."));

   return view('welcome');

});
App\Notifications\Newvisit를 사용하여 알림 클래스를 가져와야 합니다.그리고 루트 함수에서 *$User=App\User::first()가 삽입한 사용자 테이블의 첫 번째 기록을 호출했습니다.다음에 알림을 보냅니다. **notify 함수를 사용했고 Newvisit 실례에서 다음 코드 줄로 알림을 보냅니다. $user->notify (newnewvisit ("새 사용자가 응용 프로그램에 접근했습니다")
이제 app\Notifications\Newvisit를 엽니다.php는 다음 코드를 추가합니다.

<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;

use Illuminate\Notifications\Notification;

use Illuminate\Contracts\Queue\ShouldQueue;

use Illuminate\Notifications\Messages\MailMessage;

class Newvisit extends Notification

{

   use Queueable;

   protected $my_notification; 

   public function __construct($msg)

   {

       $this->my_notification = $msg; 

   }

   public function via($notifiable)

   {

       return ['mail'];

   }

   public function toMail($notifiable)

   {

       return (new MailMessage)

                   ->line('Welcome '.$this->my_notification)

                   ->action('Welcome to Cloudways', url('www.cloudways.com'))

                   ->line('Thank you for using our application!');

   }

   public function toArray($notifiable)

   {

       return [

           //

       ];

   }

}
다음은 열어봐.env 파일과 데이터베이스 인증서와 메일 프로그램 기능을 설정합니다.이 단계에 대한 자세한 내용은 Laravel Email 문서를 참조하십시오.이것env 파일은 다음과 같습니다.

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=zzjudekqvs

DB_USERNAME=zzjudekqvs

DB_PASSWORD=

BROADCAST_DRIVER=log

CACHE_DRIVER=file

SESSION_DRIVER=file

QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1

REDIS_PASSWORD=null

REDIS_PORT=6379

MAIL_DRIVER=smtp

MAIL_HOST=smtp.gmail.com

MAIL_PORT=587

[email protected]

MAIL_PASSWORD=

MAIL_ENCRYPTION=tls

PUSHER_APP_ID=

PUSHER_APP_KEY=

PUSHER_APP_SECRET=
이제 모든 것이 준비되었다.Cloudways 플랫폼의 응용 프로그램 탭으로 이동하고 응용 프로그램 시작 단추를 누르십시오.우리는 이메일로 당신에게 통지할 것입니다.


Laravel의 Slack을 통해 알림 보내기


이완 알림을 만들고 보내려면 Composer를 통해 에 Guzzle을 설치해야 합니다.SSH를 시작하고 응용 프로그램의 루트 디렉토리에서 다음 명령을 실행합니다.

composer require guzzlehttp/guzzle

php artisan make:notification Newslack
느슨한 알림을 위해 새로운 종류가 필요합니다.이를 위해 app/Notifications/Newslack으로 이동하십시오.php 다음 코드를 붙여넣습니다.

<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;

use Illuminate\Notifications\Notification;

use Illuminate\Contracts\Queue\ShouldQueue;

use Illuminate\Notifications\Messages\MailMessage;

use Illuminate\Notifications\Messages\SlackMessage;

class Newslack extends Notification

{

   use Queueable;

   public function __construct()

   {

       //

   }

   public function via($notifiable)

   {

       return ['slack'];

   }

   public function toSlack($notifiable)

   {

       return (new SlackMessage)

           ->content('A new visitor has visited to your application . $this->user->first(1->name)');

   } 

}
여기에서via()**방법은 알림의 미디어를 정의하고 *toSlack() 방법은 알림을 Slack으로 보냅니다.

Webhook 전송 설정


이완 알림을 받으려면 https://{yourteam}.slack.com/apps 으로 이동하십시오.Incoming Webhook 유형을 선택하고 새 구성을 추가합니다.

Webhook URL을 복사하여 Laravel 응용 프로그램으로 돌아갑니다.
모델은 routeNotificationForSlack () 방법을 실행해야 합니다. 이 방법은 이 웹 훅을 되돌려줍니다.따라서 응용 프로그램/사용자로 이동하십시오.php는 다음 함수를 추가합니다.

public function routeNotificationForSlack()

   {

       Return 'your_webhook_url';

   }
이제 루트/웹으로 넘어갑니다.php 및 다음 루트를 추가합니다.

Route::get('/slack', function () {



$user = App\User::first();



$user->notify(new Newslack());



   echo "A slack notification has been send";



});
이제 Cloudways 플랫폼의 응용 프로그램 옵션 카드로 이동하여 응용 프로그램 시작 단추를 누르고 url에 추가/이완합니다.다음과 같은 지연 알림이 표시됩니다.

마지막 한마디


Laravel 알림 시스템은 매혹적이고 실현하기 쉬운 기능으로 프로젝트에 많은 가치를 증가시켰다.이 예시를 사용하면 Laravel 프로그램에 통합된 알림 시스템을 만들 수 있습니다. 아무런 문제가 없습니다.도움이 필요하면 아래에 댓글을 올리거나 트위터에 DM을 보내주세요.즐거운 인코딩.

좋은 웹페이지 즐겨찾기