PHPackages                             advanced-notifications/core - 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. [Mail &amp; Notifications](/categories/mail)
4. /
5. advanced-notifications/core

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

advanced-notifications/core
===========================

A full-featured, enterprise-grade notification system for Laravel.

v1.3.7(5mo ago)00MITPHPPHP ^8.1CI failing

Since Dec 4Pushed 5mo agoCompare

[ Source](https://github.com/MohamedSamy902/notification)[ Packagist](https://packagist.org/packages/advanced-notifications/core)[ RSS](/packages/advanced-notifications-core/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (6)Versions (15)Used By (0)

Advanced Notifications Package (نظام الإشعارات المتقدم) 🚀
=========================================================

[](#advanced-notifications-package-نظام-الإشعارات-المتقدم-)

نظام إشعارات متكامل واحترافي لبيئة عمل Laravel، يدعم الإشعارات الفورية (Real-time) عبر Reverb/Pusher، وإشعارات الهاتف/المتصفح عبر Firebase (FCM)، مع لوحة تحكم متطورة للتحليلات وإدارة الحملات.

---

📋 المميزات
----------

[](#-المميزات)

- **إشعارات فورية (Real-time)**: دعم كامل لـ Laravel Reverb و Pusher مع تحديثات حية.
- **Firebase Cloud Messaging (FCM)**:
    - إرسال للمستخدمين (Tokens).
    - إرسال للموضوعات (Topics).
    - معالجة ذكية للأخطاء (حذف التوكنات المنتهية تلقائياً).
- **تحليلات متقدمة (Analytics)**:
    - تتبع الإرسال (Sent).
    - تتبع الوصول (Delivered) - *للويب*.
    - تتبع القراءة (Read).
    - تتبع النقر (Clicked).
- **لوحة تحكم (Dashboard)**: واجهة لإرسال الإشعارات ومشاهدة الإحصائيات.
- **مكونات Blade جاهزة**: دمج سهل في الفرونت إند بـ سطر واحد.

---

🚀 دليل التثبيت (Installation)
-----------------------------

[](#-دليل-التثبيت-installation)

### 1. تثبيت الباكدج

[](#1-تثبيت-الباكدج)

```
composer require advanced-notifications/core
```

### 2. نشر الملفات

[](#2-نشر-الملفات)

```
php artisan vendor:publish --provider="AdvancedNotifications\AdvancedNotificationsServiceProvider"
```

### 3. إعداد قاعدة البيانات

[](#3-إعداد-قاعدة-البيانات)

```
php artisan notifications:table
php artisan migrate
```

---

⚙️ الإعداد والتهيئة (Configuration)
-----------------------------------

[](#️-الإعداد-والتهيئة-configuration)

### 1. إعداد ملف `.env`

[](#1-إعداد-ملف-env)

أضف المتغيرات التالية في ملف `.env` الخاص بمشروعك:

**إعدادات Firebase (للإشعارات):**

```
FIREBASE_CREDENTIALS_PATH=/path/to/your/firebase_credentials.json
FIREBASE_API_KEY=AIzaSy...
FIREBASE_AUTH_DOMAIN=your-app.firebaseapp.com
FIREBASE_PROJECT_ID=your-project-id
FIREBASE_STORAGE_BUCKET=your-app.appspot.com
FIREBASE_MESSAGING_SENDER_ID=123456789
FIREBASE_APP_ID=1:123456789:web:abcdef
FIREBASE_VAPID_KEY=B... (المفتاح العام الطويل)
```

**إعدادات Reverb (للإشعارات الفورية):**

```
REVERB_APP_ID=...
REVERB_APP_KEY=...
REVERB_APP_SECRET=...
REVERB_HOST="localhost"
REVERB_PORT=8080
REVERB_SCHEME="http"

VITE_REVERB_APP_KEY="${REVERB_APP_KEY}"
VITE_REVERB_HOST="${REVERB_HOST}"
VITE_REVERB_PORT="${REVERB_PORT}"
VITE_REVERB_SCHEME="${REVERB_SCHEME}"
```

### 2. إعداد موديل المستخدم (`User.php`)

[](#2-إعداد-موديل-المستخدم-userphp)

أضف الـ Trait `HasAdvancedNotifications` في موديل المستخدم:

```
use AdvancedNotifications\Traits\HasAdvancedNotifications;

class User extends Authenticatable
{
    use HasAdvancedNotifications;
    // ...
}
```

### 3. إعداد قنوات البث (`routes/channels.php`)

[](#3-إعداد-قنوات-البث-routeschannelsphp)

تأكد من وجود تصريح للقناة الخاصة بالمستخدم:

```
Broadcast::channel('App.Models.User.{id}', function ($user, $id) {
    return (int) $user->id === (int) $id;
});
```

---

💻 الاستخدام (Usage)
-------------------

[](#-الاستخدام-usage)

### 1. دمج الإشعارات في الفرونت إند (Frontend)

[](#1-دمج-الإشعارات-في-الفرونت-إند-frontend)

فقط أضف هذا السطر في ملف الـ Layout الرئيسي (قبل إغلاق ``):

```

```

- **topic="1"**: (اختياري) للاشتراك تلقائياً في موضوع معين.
- **user-id**: (ضروري) لتفعيل الإشعارات الخاصة بالمستخدم.

هذا المكون سيقوم تلقائياً بـ:

1. تحميل مكتبات Firebase و Echo.
2. طلب إذن الإشعارات.
3. الاستماع للقنوات الخاصة.
4. عرض الإشعارات بـ **SweetAlert** جميل.
5. إرسال تقارير "تم الوصول" و "تم النقر" للباك إند.

### 2. إرسال إشعار برمجياً (Code)

[](#2-إرسال-إشعار-برمجياً-code)

```
use AdvancedNotifications\Notifications\GenericNotification;
use App\Models\User;

$user = User::find(1);

$user->notify(new GenericNotification(
    'عنوان الإشعار',
    'نص الإشعار هنا...',
    null,               // الأيقونة
    'https://google.com', // رابط عند النقر
    [],                 // بيانات إضافية
    ['broadcast', 'database', 'fcm'] // القنوات
));
```

---

🧪 خطة الاختبار النهائي (Final Testing Plan)
-------------------------------------------

[](#-خطة-الاختبار-النهائي-final-testing-plan)

اتبع هذه الخطوات للتأكد من أن النظام يعمل 100%:

### الاختبار 1: الإرسال لمستخدم واحد (Single User)

[](#الاختبار-1-الإرسال-لمستخدم-واحد-single-user)

1. افتح لوحة التحكم: `/advanced-notifications/send`.
2. اختر **Target Type**: `User`.
3. أدخل **Recipient ID**: رقم المستخدم الخاص بك (مثلاً `1`).
4. اختر القنوات: `Database`, `Realtime`, `FCM`.
5. اضغط **Send**.
    - ✅ **النتيجة المتوقعة**: يظهر SweetAlert فوراً، ويصل إشعار متصفح (FCM)، ويتم تسجيل الإشعار في قاعدة البيانات.

### الاختبار 2: الإرسال لعدة مستخدمين (Multiple Users)

[](#الاختبار-2-الإرسال-لعدة-مستخدمين-multiple-users)

1. في نفس الصفحة، أدخل في **Recipient ID**: `1,2` (أرقام مستخدمين موجودين).
2. اضغط **Send**.
    - ✅ **النتيجة المتوقعة**: يصل الإشعار لكلا المستخدمين، ويتم تسجيل سجلين في التحليلات.

### الاختبار 3: الإرسال لموضوع (Topic)

[](#الاختبار-3-الإرسال-لموضوع-topic)

1. تأكد أنك مشترك في التوبيك (عبر كود الـ Blade `topic="news"` مثلاً).
2. اختر **Target Type**: `Topic`.
3. أدخل اسم التوبيك: `news`.
4. اضغط **Send**.
    - ✅ **النتيجة المتوقعة**: يصل إشعار FCM لجميع المشتركين في هذا التوبيك.

### الاختبار 4: الإرسال الجماعي (Mass Send)

[](#الاختبار-4-الإرسال-الجماعي-mass-send)

1. اختر **Target Type**: `All Users`.
2. اضغط **Send**.
    - ✅ **النتيجة المتوقعة**: يتم جدولة الإرسال لجميع المستخدمين في النظام (على دفعات).

### الاختبار 5: التحليلات (Analytics)

[](#الاختبار-5-التحليلات-analytics)

1. بعد وصول الإشعار (SweetAlert)، لا تضغط عليه فوراً.
2. اذهب لجدول `notification_analytics` في الداتابيس.
    - ✅ يجب أن تجد سجل `event_type = delivered`.
3. اضغط على الإشعار.
    - ✅ يجب أن يتم توجيهك للرابط.
    - ✅ يجب أن تجد سجل `event_type = clicked`.
    - ✅ يجب أن تتحدث حالة الإشعار في جدول `advanced_notifications` لتصبح `read_at` لها قيمة.

---

تم التطوير بحب ❤️ بواسطة \[فريقك\]

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance71

Regular maintenance activity

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

14

Last Release

164d ago

PHP version history (2 changes)v1.1.0PHP ^8.0

v1.3.0PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/5d98cf8596705cca03e6df2e50abd48d909cb6671ba7c8c9b6ae999ac60194b0?d=identicon)[MohamedSamy902](/maintainers/MohamedSamy902)

---

Top Contributors

[![MohamedSamy902](https://avatars.githubusercontent.com/u/37915355?v=4)](https://github.com/MohamedSamy902 "MohamedSamy902 (33 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/advanced-notifications-core/health.svg)

```
[![Health](https://phpackages.com/badges/advanced-notifications-core/health.svg)](https://phpackages.com/packages/advanced-notifications-core)
```

###  Alternatives

[vemcogroup/laravel-sparkpost-driver

SparkPost driver to use with Laravel 6.x|7.x|8.x|9.x|10.x

421.7M1](/packages/vemcogroup-laravel-sparkpost-driver)[spatie/mailcoach

Self-host Mailcoach

4007.0k](/packages/spatie-mailcoach)[guanguans/notify

Push notification SDK(AnPush、Bark、Chanify、DingTalk、Discord、Gitter、GoogleChat、IGot、Lark、Mattermost、MicrosoftTeams、NowPush、Ntfy、Push、Pushback、PushBullet、PushDeer、PushMe、Pushover、PushPlus、QQ、RocketChat、ServerChan、ShowdocPush、SimplePush、Slack、Telegram、WeWork、WPush、XiZhi、YiFengChuanHua、ZohoCliq、ZohoCliqWebHook、Zulip).

682104.9k7](/packages/guanguans-notify)[tzsk/sms

A robust and unified SMS gateway integration package for Laravel, supporting multiple providers.

320244.3k6](/packages/tzsk-sms)[erag/laravel-disposable-email

A Laravel package to detect and block disposable email addresses.

226102.4k](/packages/erag-laravel-disposable-email)[motomedialab/smtp2go

Send emails via API using the first-class email courier SMTP2Go

1316.3k](/packages/motomedialab-smtp2go)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
