PHPackages                             andydefer/laravel-notification - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. andydefer/laravel-notification

ActiveLibrary

andydefer/laravel-notification
==============================

Extensible polymorphic notification system for Laravel with multi-channel support (Mail, Database, SMS, WhatsApp, etc.)

v1.5.4(1w ago)0349—5.8%1MITPHPPHP ^8.2

Since Jul 6Pushed 1w agoCompare

[ Source](https://github.com/andydefer/laravel-notification)[ Packagist](https://packagist.org/packages/andydefer/laravel-notification)[ RSS](/packages/andydefer-laravel-notification/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (24)Versions (103)Used By (1)

Laravel Notification
====================

[](#laravel-notification)

**Système de notifications multi-canaux pour Laravel. Persistance, traçabilité, multiples destinations, planification avancée - avec une architecture extensible.**

[![PHP Version](https://camo.githubusercontent.com/187240af044d09d5b14a1d9d9ebdf3f7a993e4c7bc09bdb46b4ba661a891bf5b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322532422d626c7565)](https://php.net)[![Laravel Version](https://camo.githubusercontent.com/ba69236eb9bfe25effcb7eb44086de41847364b41b47c2e3f6c3975cd2653974/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31322e7825323025374325323031332e7825323025374325323031342e7825323025374325323031352e782d626c7565)](https://laravel.com)[![License](https://camo.githubusercontent.com/5caa455d8debc46fb23abbadb45a733a937f3910a73fc875c2f7820468e1bb54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e)](LICENSE)

---

Table des matières
------------------

[](#table-des-matières)

1. [Installation](#installation)
2. [Pourquoi Laravel Notification ?](#pourquoi-laravel-notification-)
3. [Architecture en un coup d'œil](#architecture-en-un-coup-d%C5%93il)
4. [Déclarer les canaux d'une entité](#d%C3%A9clarer-les-canaux-dune-entit%C3%A9)
5. [Envoyer une notification](#envoyer-une-notification)
    - [Envoi immédiat](#envoi-imm%C3%A9diat)
    - [Envoi différé](#envoi-diff%C3%A9r%C3%A9)
    - [Envoi planifié](#envoi-planifi%C3%A9)
    - [Envoi récurrent](#envoi-r%C3%A9current)
6. [Filtrage des destinations avec SendOptions](#filtrage-des-destinations-avec-sendoptions)
7. [NotifiableBuilder - Envoi sans entité](#notifiablebuilder---envoi-sans-entit%C3%A9)
8. [MessageViewBodyVO - Corps de message basé sur une vue Laravel](#messageviewbodyvo---corps-de-message-bas%C3%A9-sur-une-vue-laravel)
9. [Gestion des tâches](#gestion-des-t%C3%A2ches)
10. [Statistiques et rapports](#statistiques-et-rapports)
11. [Canaux disponibles](#canaux-disponibles)
12. [Créer un canal personnalisé](#cr%C3%A9er-un-canal-personnalis%C3%A9)
13. [Cas d'usage concrets](#cas-dusage-concrets)
14. [Bonnes pratiques](#bonnes-pratiques)
15. [Référence de l'API](#r%C3%A9f%C3%A9rence-de-lapi)

---

Installation
------------

[](#installation)

```
composer require andydefer/laravel-notification

php artisan vendor:publish --tag=notification-migrations
php artisan migrate

php artisan vendor:publish --tag=notification-config
```

**Prérequis :** PHP 8.2+ | Laravel 12.x, 13.x, 14.x ou 15.x

---

Pourquoi Laravel Notification ?
-------------------------------

[](#pourquoi-laravel-notification-)

**Le problème :** Votre application doit notifier les utilisateurs par email, SMS, WhatsApp, Slack, et dans la base de données. Chaque médecin a une adresse email professionnelle et une personnelle. Chaque client a un numéro de téléphone principal et un secondaire. Vous devez tracer **toutes** les notifications pour l'audit, savoir lesquelles ont échoué, et pouvoir consulter l'historique complet.

**La solution :** Laravel Notification. Un système complet qui orchestre l'envoi sur tous les canaux d'une entité, trace chaque tentative, et permet la planification avancée.

### Comparatif rapide

[](#comparatif-rapide)

BesoinLaravel Notifications (natif)Laravel NotificationPlusieurs destinations par canal❌✅Persistance automatique❌ (sauf database)✅ (tous les canaux)Statut de l'envoi (SENT/FAILED)❌✅Limitation par canal❌✅Métadonnées par destination❌✅Filtrage des destinations par canal❌✅Envoi différé⚠️ (via queues)✅ (intégré)Envoi récurrent⚠️ (via scheduler)✅ (intégré)Gestion des tâches (pause/reprise)❌✅Architecture extensible⚠️ (complexe)✅ (simple)Envoi sans entité Notifiable❌✅ (NotifiableBuilder)Corps de message basé sur vue Laravel❌✅ (MessageViewBodyVO)### En une phrase

[](#en-une-phrase)

> **Laravel Notifications envoie un message sur un canal défini. Laravel Notification orchestre l'envoi sur tous les canaux d'une entité, trace chaque tentative et permet la planification avancée.**

---

Architecture en un coup d'œil
-----------------------------

[](#architecture-en-un-coup-dœil)

L'architecture du package repose sur plusieurs composants clés :

```
┌─────────────────────────────────────────────────────────────────┐
│                    NotificationService                          │
│          (Point d'entrée principal de l'API)                    │
└────────────────────────┬────────────────────────────────────────┘
                         │
         ┌───────────────┼───────────────┐
         │               │               │
         ▼               ▼               ▼
┌─────────────────┐┌─────────────────┐┌─────────────────────────┐
│ Notifiable      ││ Notifiable      ││    NotificationSender   │
│ Builder         ││ Service         ││    Processor            │
│ (API fluente)   ││ (API standard)  ││    (Orchestrateur)      │
└─────────────────┘└─────────────────┘└─────────────────────────┘

```

### Composants principaux

[](#composants-principaux)

ComposantRôle`NotificationService`Service principal, point d'entrée de l'API`NotifiableBuilder`Builder fluide pour envoyer des notifications sans entité`NotificationSenderProcessor`Orchestre l'envoi : résolution des routes, filtres, limites`SendOptions`Configuration fluide des options d'envoi (canaux, limites, filtres)`NotificationRouteVO`Value Object définissant un canal + destination + métadonnées`AbstractDriver`Classe de base pour les drivers d'envoi (Mail, SMS, Slack, etc.)`AbstractChannel`Classe de base pour les canaux de notification`SendDelayedNotificationTask`Tâche unique pour les envois différés/planifiés`SendRecurringNotificationTask`Tâche récurrente pour les envois périodiques`MessageViewBodyVO`Value Object pour corps de message basé sur vue Laravel---

Déclarer les canaux d'une entité
--------------------------------

[](#déclarer-les-canaux-dune-entité)

Pour qu'une entité (User, Order, Doctor, etc.) puisse recevoir des notifications, elle doit implémenter l'interface `NotifiableInterface`.

```
