joydeep-bhowmik/laravel-push-notification
Composer 安装命令:
composer require joydeep-bhowmik/laravel-push-notification
包简介
A Laravel package for integrating Firebase Cloud Messaging (FCM) to handle push notifications.
README 文档
README
A Laravel package for integrating Firebase Cloud Messaging (FCM) to handle push notifications seamlessly.
Table of Contents
Installation
To install the package, use Composer:
composer require joydeep-bhowmik/laravel-push-notification
And add this in your bootstrap/providers
<?php return [ JoydeepBhowmik\LaravelPushNotification\Providers\FcmServiceProvider::class ];
Publishing Assets
After installation, publish the package assets using the following command:
php artisan vendor:publish --tag=fcm-all php artisan vendor:publish --tag=fcm-tokens-model
This command will publish the following resources:
- Configuration file:
config/fcm.php - Firebase service worker:
public/firebase-messaging-sw.js - Main JavaScript file:
public/js/fcm.js - Firebase Auth script:
public/js/firebase-auth.js - UserDevice model:
app/Models/UserDevice.php - Migration for UserDevice:
database/migrations/(with a timestamp) - Push notification switch Blade component:
resources/views/components/push-notification-switch.blade.php
Configuration
After publishing, configure the FCM settings in config/fcm.php. Ensure you set the correct Firebase credentials and other options as needed.
Make sure to set the FIREBASE_CREDENTIALS in your .env file.
and replace api keys in public/firebase-messaging-sw.js,resources/js/fcm.js,storage/framework/app/firebase-auth.js.
Migrations
Run the migrations to create the necessary database tables:
php artisan migrate
Usage
Sending Notifications
To send notifications, create a notification class that uses the FcmChannel.
Example Notification Class
Here’s how to create a notification class that utilizes the FcmChannel:
namespace App\Notifications; use Illuminate\Notifications\Notification; use Kreait\Firebase\Messaging\WebPushConfig; use Kreait\Firebase\Messaging\ApnsConfig; use Kreait\Firebase\Messaging\AndroidConfig; class YourNotification extends Notification { public function via($notifiable) { return [FcmChannel::class]; } public function toFcm($notifiable) { return [ // 'topic'=>'topic-name', if you want to send message in a topic 'notification' => [ 'title' => 'Notification Title', 'body' => 'Notification body text.', 'icon' => 'https://your-server.example/icon.png', ], 'webpush' => [ 'notification' => [ 'title' => 'Notification Title', 'body' => 'Notification body text.', 'icon' => 'https://your-server.example/icon.png', ], ], 'android' => [ 'notification' => [ 'title' => 'Android Notification Title', 'body' => 'Android notification body text.', 'icon' => 'android-icon', 'color' => '#f45342', ], ], 'apns' => [ 'payload' => [ 'aps' => [ 'alert' => [ 'title' => 'APNs Notification Title', 'body' => 'APNs notification body text.', ], 'badge' => 42, 'sound' => 'default', ], ], ], ]; } }
Frontend Setup
Include the necessary JavaScript files in your application to handle push notifications. You can add the following in your main js file:
// resources/js/app.js import "./fcm";
Make sure to replace the placeholders in your firebaseConfig in fcm.js and the service worker:
const firebaseConfig = { apiKey: "YOUR_API_KEY_HERE", authDomain: "YOUR_AUTH_DOMAIN_HERE", projectId: "YOUR_PROJECT_ID_HERE", storageBucket: "YOUR_STORAGE_BUCKET_HERE", messagingSenderId: "YOUR_MESSAGING_SENDER_ID_HERE", appId: "YOUR_APP_ID_HERE", measurementId: "YOUR_MEASUREMENT_ID_HERE", };
Push Notification Switch Component
You can use the push-notification-switch Blade component in your views to allow users to enable or disable push notifications.
<x-push-notification-switch />
License
This package is licensed under the MIT License. See the LICENSE file for more information.
Acknowledgments
joydeep-bhowmik/laravel-push-notification 适用场景与选型建议
joydeep-bhowmik/laravel-push-notification 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 7 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 09 月 20 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「laravel」 「push notification」 「fireabse push notification」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 joydeep-bhowmik/laravel-push-notification 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 joydeep-bhowmik/laravel-push-notification 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 joydeep-bhowmik/laravel-push-notification 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
This package makes it easy to send notifications via AfricasTalking with Laravel
Apple Push Notification & Feedback Provider
Throttle notifications on a per-channel basis
Laravel package to send push notifications to mobile devices (apns, gcm)
Extensible library for building notifications and sending them via different delivery channels.
Simple javascript toast notifications
统计信息
- 总下载量: 7
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 8
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-09-20