알림 템플릿과 다중 알림 채널을 사용하여 사용자에게 알림을 보냅니다. 매크로가 포함된 Filament Native 알림 서비스를 지원하고 FCM 서비스 작업자 알림과 완전히 통합됩니다.
이 패키지를 사용하기 전에 설치했는지 확인하십시오
composer require tomatophp/filament-alerts
이제 설정 테이블을 게시하고 마이그레이션해야 합니다.
php artisan vendor:publish --provider= " SpatieLaravelSettingsLaravelSettingsServiceProvider " --tag= " migrations "
패키지를 설치한 후 이 명령을 실행하세요.
php artisan filament-alerts:install
이 패키지를 플러그인으로 사용하지 않는 경우 /app/Providers/Filament/AdminPanelProvider.php
에 플러그인을 등록하세요.
-> plugin ( TomatoPHP FilamentAlerts FilamentAlertsPlugin :: make ()
)
알림을 받도록 모델을 설정하려면
namespace App Models ;
use Illuminate Contracts Auth MustVerifyEmail ;
use Illuminate Database Eloquent Factories HasFactory ;
use Illuminate Foundation Auth User as Authenticatable ;
use Illuminate Notifications Notifiable ;
use Laravel Fortify TwoFactorAuthenticatable ;
use Laravel Jetstream HasProfilePhoto ;
use Laravel Sanctum HasApiTokens ;
use Spatie Permission Traits HasRoles ;
use TomatoPHP FilamentAlerts Traits InteractsWithNotifications ;
class User extends Authenticatable
{
use HasApiTokens ;
use HasFactory ;
use HasProfilePhoto ;
use Notifiable ;
use TwoFactorAuthenticatable ;
use HasRoles ;
use InteractsWithNotifications ;
...
실시간 알림을 받으려면 FCM에 대한 설정을 지정해야 합니다.
알림은 대기열에서 실행되므로 알림을 보내려면 대기열 작업자를 실행해야 합니다.
php artisan queue:work
필라멘트 기본 알림을 사용할 수 있으며 우리는 당신을 위해 몇 가지 macro
추가합니다.
use Filament Notifications Notification ;
Notification :: make ( ' send ' )
-> title ( ' Test Notifications ' )
-> body ( ' This is a test notification ' )
-> icon ( ' heroicon-o-bell ' )
-> color ( ' success ' )
-> actions ([
Filament Notifications Actions Action :: make ( ' view ' )
-> label ( ' View ' )
-> url ( ' https://google.com ' )
-> markAsRead ()
])
-> sendToDiscord ( auth ()-> user ())
-> sendToEmail ( auth ()-> user ())
-> broadcast ( auth ()-> user ())
-> sendToDatabase ( auth ()-> user ())
-> sendToSlack ( auth ()-> user ())
-> sendToFCM ( auth ()-> user ())
새 템플릿을 생성하려면 템플릿 CRUD를 사용하고 모든 단일 알림에서 템플릿 키를 사용하므로 템플릿 키가 고유한지 확인하세요.
알림을 보내려면 SendNotification::class 도우미를 사용해야 합니다.
SendNotification :: make ( $ template -> providers )
-> template ( $ template -> key )
-> findTitle ( $ matchesTitle )
-> replaceTitle ( $ titleFill )
-> findBody ( $ matchesBody )
-> replaceBody ( $ titleBody )
-> model ( User ::class)
-> id ( User :: first ()-> id )
-> privacy ( ' private ' )
-> fire ();
여기서 $template
키로 템플릿에서 선택되고 $matchesTitle 및 $matchesBody는 템플릿을 대체할 일치 항목의 배열이고 $titleFill 및 $titleBody는 일치 항목을 대체할 값의 배열입니다.
다음과 같은 여러 알림 채널을 사용할 수 있습니다.
다음과 같은 직접적인 사용자 방법으로 작업할 수 있습니다.
$ user -> notifySMSMisr (string $ message );
$ user -> notifyEmail (string $ message , ?string $ subject = null , ?string $ url = null );
$ user -> notifyFCMSDK (string $ message , string $ type = ' web ' , ?string $ title = null , ?string $ url = null , ?string $ image = null , ?string $ icon = null , ?array $ data =[]);
$ user -> notifyDB (string $ message , ?string $ title = null , ?string $ url = null );
$ user -> notifySlack (string $ title ,string $ message = null ,?string $ url = null , ?string $ image = null , ?string $ webhook = null );
$ user -> notifyDiscord (string $ title ,string $ message = null ,?string $ url = null , ?string $ image = null , ?string $ webhook = null );
FCM 알림이 작동하도록 하려면 필라멘트 설정 허브를 설치하고 플러그인에서 설정 허브 사용을 허용해야 합니다.
-> plugin ( TomatoPHP FilamentAlerts FilamentAlertsPlugin :: make ()
-> useSettingsHub ()
-> useFCM ()
)
이 명령을 사용하여 filament-fcm
패키지를 설치해야 합니다.
composer require tomatophp/filament-fcm
서비스 제공업체 플러그인을 추가하세요.
-> plugin ( TomatoPHP FilamentFcm FilamentFcmPlugin :: make ())
이제 구성을 업데이트해야 합니다
# Firebase Project
FIREBASE_API_KEY =
FIREBASE_AUTH_DOMAIN =
FIREBASE_DATABASE_URL =
FIREBASE_PROJECT_ID =
FIREBASE_STORAGE_BUCKET =
FIREBASE_MESSAGING_SENDER_ID =
FIREBASE_APP_ID =
FIREBASE_MEASUREMENT_ID =
# Firebase Cloud Messaging
FIREBASE_VAPID =
# Firebase Alert Sound
FCM_ALERT_SOUND =
이 명령을 실행하는 것보다
php artisan filament-fcm:install
백그라운드에서 알림이 작동하도록 FCM 작업자를 생성합니다.
사이드바에서 알림 리소스를 숨기려면 다음과 같은 플러그인 메소드 hideNotificationsResources
를 사용할 수 있습니다.
-> plugin ( TomatoPHP FilamentAlerts FilamentAlertsPlugin :: make ()
-> hideNotificationsResources ()
)
Slack 드라이버를 사용하려면 설정 허브에서 Slack Webhook을 설정하고 다음과 같은 플러그인 메소드 useSlack
사용해야 합니다.
-> plugin ( TomatoPHP FilamentAlerts FilamentAlertsPlugin :: make ()
-> useSlack ()
)
이제 .env
파일에 웹훅 URL과 함께 SLACK_WEBHOOK
키를 추가하세요.
불일치 드라이버를 사용하려면 설정 허브에서 불일치 웹훅을 설정하고 다음과 같은 플러그인 메소드 useDiscord
사용해야 합니다.
-> plugin ( TomatoPHP FilamentAlerts FilamentAlertsPlugin :: make ()
-> useDiscord ()
)
이제 .env
파일에 웹훅 URL과 함께 DISCORD_WEBHOOK
키를 추가하세요.
우리는 알림을 받고 api/notifications
경로에서 찾을 수 있는 몇 가지 작업을 수행하기 위한 일부 API를 지원합니다.
다음과 같은 플러그인 메소드 apiModel
사용하여 사용자 모델을 변경할 수 있습니다.
-> plugin ( TomatoPHP FilamentAlerts FilamentAlertsPlugin :: make ()
-> apiModel ( User ::class)
)
이 명령을 사용하여 구성 파일을 게시할 수 있습니다
php artisan vendor:publish --tag= " filament-alerts-config "
이 명령을 사용하여 뷰 파일을 게시할 수 있습니다
php artisan vendor:publish --tag= " filament-alerts-views "
이 명령을 사용하여 언어 파일을 게시할 수 있습니다
php artisan vendor:publish --tag= " filament-alerts-lang "
이 명령을 사용하여 마이그레이션 파일을 게시할 수 있습니다
php artisan vendor:publish --tag= " filament-alerts-migrations "
우리의 멋진 TomatoPHP를 확인해 보세요