Senden Sie Benachrichtigungen an Benutzer mithilfe von Benachrichtigungsvorlagen und mehreren Benachrichtigungskanälen. Es unterstützt den Filament Native Notification Service mit Makro und bietet eine vollständige Integration in FCM-Service-Worker-Benachrichtigungen
Benachrichtigung an Benutzer senden
Verwenden Sie die native Filament-Benachrichtigung
Verwenden Sie Benachrichtigungsvorlagen
Vollständige FCM-Service-Worker-Integration
Nutzen Sie mehrere Benachrichtigungskanäle
API zum Erhalten von Benachrichtigungen
Benachrichtigungsressourcen ausblenden
Verwenden Sie den Slack-Treiber
Verwenden Sie den Discord-Treiber
Verwenden Sie den Reverb-Treiber
Verwenden Sie den SMS Misr-Treiber
Verwenden Sie den E-Mail-Treiber
Verwenden Sie den Datenbanktreiber
Verwenden Sie den MessageBird-Treiber
Bevor Sie dieses Paket verwenden, stellen Sie sicher, dass Sie es installiert haben
Filament Spatie übersetzbar
Filament Spatie-Medienbibliothek
Hub für Filamenteinstellungen
Composer benötigt tomatophp/filament-alerts
Jetzt müssen Sie die Einstellungstabelle veröffentlichen und migrieren
PHP-Artist-Anbieter:publish --provider="SpatieLaravelSettingsLaravelSettingsServiceProvider" --tag="migrations"
Führen Sie nach der Installation Ihres Pakets bitte diesen Befehl aus
php artisan filament-alerts:install
Wenn Sie dieses Paket nicht als Plugin verwenden, registrieren Sie das Plugin bitte unter /app/Providers/Filament/AdminPanelProvider.php
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() )
um ein beliebiges Modell einzurichten, um Benachrichtigungen zu erhalten
<?phpnamespace AppModels;verwende IlluminateContractsAuthMustVerifyEmail;verwende IlluminateDatabaseEloquentFactoriesHasFactory;verwende IlluminateFoundationAuthUser als Authenticatable;verwende IlluminateNotificationsNotifiable;verwende LaravelFortifyTwoFactorAuthenticatable;verwende LaravelJetstreamHasProfilePhoto;verwende LaravelSanctumHasApiTokens;verwende SpatiePermissionTraitsHasRoles;TomatoPHPFilamentAlertsTraitsInteractsWithNotifications verwenden;class User erweitert Authenticatable{use HasApiTokens;use HasFactory;use HasProfilePhoto;use Notifiable;use TwoFactorAuthenticatable;use HasRoles;use InteractsWithNotifications; ...
und Sie müssen die Einstellungen für FCM festlegen, um Echtzeitbenachrichtigungen zu erhalten
Die Benachrichtigung wird in der Warteschlange ausgeführt. Sie müssen daher den Warteschlangenarbeiter ausführen, um die Benachrichtigungen zu senden
PHP-Artist-Warteschlange:Arbeit
Sie können die native Filament-Benachrichtigung verwenden und wir fügen ein macro
für Sie hinzu
benutze FilamentNotificationsNotification;Notification::make('send') ->title('Testbenachrichtigungen') ->body('Dies ist eine Testbenachrichtigung') ->icon('heroicon-o-bell') ->color('Erfolg') ->actions([FilamentNotificationsActionsAction::make('view') ->label('Ansicht') ->url('https://google.com') ->markAsRead() ]) ->sendToDiscord(auth()->user()) ->sendToEmail(auth()->user()) ->broadcast(auth()->user()) ->sendToDatabase(auth()->user()) ->sendToSlack(auth()->user()) ->sendToFCM(auth()->user())
Um eine neue Vorlage zu erstellen, können Sie Template CRUD verwenden und sicherstellen, dass der Vorlagenschlüssel eindeutig ist, da Sie ihn für jede einzelne Benachrichtigung verwenden.
Um eine Benachrichtigung zu senden, müssen Sie unseren Helfer SendNotification::class verwenden
SendNotification::make($template->providers) ->template($template->key) ->findTitle($matchesTitle) ->replaceTitle($titleFill) ->findBody($matchesBody) ->replaceBody($titleBody) ->model(Benutzer::Klasse) ->id(User::first()->id) ->privacy('privat') ->fire();
Dabei wird $template
anhand des Schlüssels aus der Vorlage ausgewählt und $matchesTitle und $matchesBody sind ein Array von Übereinstimmungen zum Ersetzen der Vorlage und $titleFill und $titleBody sind ein Array von Werten zum Ersetzen der Übereinstimmungen
Sie können mehrere Benachrichtigungskanäle verwenden, z
SMS
FCM
Hall
Datenbank
Locker
Zwietracht
Es kann mit direkten Benutzermethoden wie arbeiten
$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);
Damit die FCM-Benachrichtigung funktioniert, müssen Sie Filament Settings Hub installieren und die Verwendung von Setting Hub im Plugin zulassen
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->useSettingsHub() ->useFCM() )
Dann müssen Sie das Paket filament-fcm
mit diesem Befehl installieren
Komponist benötigt tomatophp/filament-fcm
und fügen Sie das Dienstanbieter-Plugin hinzu
->plugin(TomatoPHPFilamentFcmFilamentFcmPlugin::make())
Jetzt müssen Sie die Konfiguration aktualisieren
# Firebase ProjectFIREBASE_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 MessagingFIREBASE_VAPID=# Firebase-Benachrichtigung SoundFCM_ALERT_SOUND=
Dann führen Sie diesen Befehl aus
php artisan filament-fcm:install
Es wird ein FCM-Worker generiert, damit Sie Benachrichtigungen im Hintergrund ausführen können.
Um die Benachrichtigungsressourcen in der Seitenleiste auszublenden, können Sie die Plugin-Methode hideNotificationsResources
wie verwenden
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->hideNotificationsResources() )
Um den Slack-Treiber zu verwenden, müssen Sie den Slack-Webhook im Einstellungs-Hub festlegen und die Plugin-Methode useSlack
like verwenden
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->useSlack() )
Fügen Sie nun Ihrer .env
Datei einen SLACK_WEBHOOK
-Schlüssel mit der Webhook-URL hinzu
Um den Discord-Treiber zu verwenden, müssen Sie den Discord-Webhook im Einstellungs-Hub festlegen und die Plugin-Methode useDiscord
like verwenden
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->verwendeDiscord() )
Fügen Sie nun Ihrer .env
Datei einen DISCORD_WEBHOOK
-Schlüssel mit der Webhook-URL hinzu
Wir unterstützen einige APIs, um die Benachrichtigung zu erhalten und einige Aktionen durchzuführen. Sie finden sie unter api/notifications
route“.
Sie können das Benutzermodell ändern, indem Sie die Plugin-Methode apiModel
verwenden
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->apiModel(User::class) )
Mit diesem Befehl können Sie die Konfigurationsdatei veröffentlichen
PHP-Artist-Anbieter:publish --tag="filament-alerts-config"
Mit diesem Befehl können Sie die Ansichtsdatei veröffentlichen
PHP-Artist-Anbieter:publish --tag="filament-alerts-views"
Mit diesem Befehl können Sie die Sprachdatei veröffentlichen
PHP-Artist-Anbieter:publish --tag="filament-alerts-lang"
Mit diesem Befehl können Sie die Migrationsdatei veröffentlichen
PHP-Artist-Anbieter:publish --tag="filament-alerts-migrations"
Schauen Sie sich unser Awesome TomatoPHP an