Envoyez des notifications aux utilisateurs à l'aide de modèles de notification et de plusieurs canaux de notification, il prend en charge le service de notification natif de filament avec macro et une intégration complète aux notifications des techniciens de service FCM.
Envoyer une notification aux utilisateurs
Utiliser la notification native du filament
Utiliser des modèles de notification
Intégration complète des agents de service FCM
Utiliser plusieurs canaux de notification
API pour recevoir des notifications
Masquer les ressources de notifications
Utiliser le pilote Slack
Utiliser le pilote Discord
Utiliser le pilote de réverbération
Utiliser le pilote SMS Misr
Utiliser le pilote de messagerie
Utiliser le pilote de base de données
Utiliser le pilote MessageBird
avant d'utiliser ce package, assurez-vous d'avoir installé
Filament Spatie traduisible
Médiathèque Filament Spatie
Hub des paramètres de filament
le compositeur nécessite des Tomatophp/filament-alerts
vous devez maintenant publier et migrer le tableau des paramètres
vendeur artisanal php:publish --provider="SpatieLaravelSettingsLaravelSettingsServiceProvider" --tag="migrations"
après avoir installé votre package, veuillez exécuter cette commande
alertes de filament artisan php : installer
si vous n'utilisez pas ce package comme plugin, veuillez enregistrer le plugin sur /app/Providers/Filament/AdminPanelProvider.php
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() )
pour configurer n'importe quel modèle pour recevoir des notifications
<?phpnamespace AppModels;utiliser IlluminateContractsAuthMustVerifyEmail;utiliser IlluminateDatabaseEloquentFactoriesHasFactory;utiliser IlluminateFoundationAuthUser comme Authenticatable;utiliser IlluminateNotificationsNotifiable;utiliser LaravelFortifyTwoFactorAuthenticatable;utiliser LaravelJetstreamHasProfilePhoto;utiliser LaravelSanctumHasApiTokens;utiliser SpatiePermissionTraitsHasRoles; utiliser TomatoPHPFilamentAlertsTraitsInteractsWithNotifications; classe User extends Authenticatable{utiliser HasApiTokens; utiliser HasFactory; utiliser HasProfilePhoto; utiliser Notifiable; utiliser TwoFactorAuthenticatable; utiliser HasRoles; utiliser InteractsWithNotifications; ...
et vous devez définir les paramètres de FCM pour recevoir une notification en temps réel
la notification est exécutée dans la file d'attente, vous devez donc exécuter le gestionnaire de file d'attente pour envoyer les notifications
file d'attente artisan php: travail
vous pouvez utiliser la notification native du filament et nous ajoutons une macro
pour vous
utiliser FilamentNotificationsNotification;Notification::make('send') ->titre('Notifications de test') ->body('Ceci est une notification de test') ->icône('heroicon-o-bell') ->couleur('succès') ->actions([FilamentNotificationsActionsAction::make('view') ->étiquette('Vue') ->url('https://google.com') ->markAsRead() ]) ->sendToDiscord(auth()->user()) ->sendToEmail(auth()->user()) ->broadcast(auth()->user()) ->sendToDatabase(auth()->user()) ->sendToSlack(auth()->user()) ->sendToFCM(auth()->user())
pour créer un nouveau modèle, vous pouvez utiliser le modèle CRUD et vous assurer que la clé du modèle est unique car vous l'utiliserez pour chaque notification.
pour envoyer une notification, vous devez utiliser notre assistant SendNotification::class comme
SendNotification::make($template->providers) ->modèle($modèle->clé) ->trouverTitre($matchesTitle) ->remplacerTitre($titleFill) -> trouver le corps ($ correspond au corps) ->remplaceBody($titleBody) ->modèle (Utilisateur :: classe) ->id(Utilisateur::first()->id) ->confidentialité('privé') ->feu();
où $template
est sélectionné dans le modèle par clé et $matchesTitle et $matchesBody sont un tableau de correspondances pour remplacer le modèle et $titleFill et $titleBody sont un tableau de valeurs pour remplacer les correspondances
vous pouvez utiliser plusieurs canaux de notification comme
SMS
FCM
Réverbération
Base de données
Mou
Discorde
il peut fonctionner avec des méthodes utilisateur directes comme
$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);
pour que la notification FCM fonctionne, vous devez installer Filament Settings Hub et autoriser l'utilisation de Setting Hub sur le plugin
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->utiliserSettingsHub() ->utiliserFCM() )
que vous devez installer le package filament-fcm
en utilisant cette commande
le compositeur nécessite Tomatophp/filament-fcm
et ajoutez le plugin du fournisseur de services
->plugin(TomatoPHPFilamentFcmFilamentFcmPlugin::make())
maintenant tu dois mettre à jour la configuration
# 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 Alert SoundFCM_ALERT_SOUND=
que d'exécuter cette commande
php artisan filament-fcm:installer
il générera un travailleur FCM pour que vous puissiez effectuer des notifications en arrière-plan.
pour masquer les ressources de notification de la barre latérale, vous pouvez utiliser la méthode du plugin hideNotificationsResources
comme
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->masquerNotificationsResources() )
pour utiliser le pilote Slack, vous devez définir le webhook Slack sur le hub des paramètres et utiliser la méthode du plugin useSlack
comme
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->utiliserSlack() )
maintenant sur votre fichier .env
ajoutez une clé SLACK_WEBHOOK
avec l'URL du webhook
pour utiliser le pilote Discord, vous devez définir le webhook Discord sur le hub des paramètres et utiliser la méthode du plugin useDiscord
comme
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->utiliserDiscord() )
maintenant sur votre fichier .env
, ajoutez une clé DISCORD_WEBHOOK
avec l'URL du webhook
nous prenons en charge certaines API pour recevoir la notification et effectuer certaines actions, vous pouvez la trouver sous la route api/notifications
vous pouvez changer le modèle utilisateur en utilisant la méthode plugin apiModel
comme
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->apiModel (Utilisateur :: classe) )
vous pouvez publier le fichier de configuration en utilisant cette commande
Vendeur artisanal php :publish --tag="filament-alerts-config"
vous pouvez publier un fichier de vues en utilisant cette commande
vendeur artisanal php :publish --tag="filament-alerts-views"
vous pouvez publier le fichier de langues en utilisant cette commande
fournisseur artisanal php :publish --tag="filament-alerts-lang"
vous pouvez publier le fichier de migrations en utilisant cette commande
Vendeur artisanal php :publish --tag="filament-alerts-migrations"
Découvrez notre génial TomatoPHP