redjanym/fcm-bundle
Composer 安装命令:
composer require redjanym/fcm-bundle
包简介
A Symfony Bundle for projects to send notifications in mobile devices through Firebase Cloud Messaging HTTP V1 API
关键字:
README 文档
README
A Symfony Bundle for sending push notifications to mobile devices (Android, iOS) and web browsers via Google's Firebase Cloud Messaging HTTP V1 API.
Requirements
- PHP >= 7.4
- Symfony 5.4 / 6.x / 7.x
Installation
composer require redjanym/fcm-bundle
Configuration
Add your Firebase service account JSON file path to your Symfony configuration:
# config/packages/redjan_ym_fcm.yaml redjan_ym_fcm: service_account_file: '%kernel.project_dir%/config/firebase/service-account.json'
You can download the service account file from the Firebase Console under Project Settings > Service accounts > Generate new private key.
Usage
Sending to a Device
use RedjanYm\FCM\Notification; use RedjanYm\FCM\Recipient\Device; // Using the notification factory (recommended) $factory = $this->container->get('redjan_ym_fcm.notification_factory'); $notification = $factory->createDeviceNotification( 'device-token-here', 'Notification Title', 'Notification Body', ['key' => 'value'] // optional data payload ); // Or manually $notification = new Notification( new Device('device-token-here'), 'Notification Title', 'Notification Body' ); // Send $client = $this->container->get('redjan_ym_fcm.client'); $response = $client->send($notification);
Sending to a Topic
Send notifications to all devices subscribed to a topic:
use RedjanYm\FCM\Notification; use RedjanYm\FCM\Recipient\Topic; // Using the notification factory (recommended) $factory = $this->container->get('redjan_ym_fcm.notification_factory'); $notification = $factory->createTopicNotification( 'news', 'Breaking News', 'Something important happened', ['url' => 'https://example.com/article/123'] ); // Or manually $notification = new Notification( new Topic('news'), 'Breaking News', 'Something important happened' ); // Send $client = $this->container->get('redjan_ym_fcm.client'); $response = $client->send($notification);
Customizing Notifications
The Notification object exposes public properties for platform-specific settings:
$notification->image = 'https://example.com/image.png'; $notification->sound = 'default'; $notification->badge = 1; $notification->icon = 'ic_notification'; $notification->color = '#FF0000'; $notification->clickAction = 'OPEN_ACTIVITY'; $notification->androidChannelId = 'my_channel'; $notification->androidPriority = 'high'; $notification->apnsPriority = '10'; $notification->ttl = '3600s'; $notification->analyticsLabel = 'campaign_123'; // Extra settings arrays for platform-specific customization $notification->extraNotificationSettings = ['tag' => 'my-tag']; $notification->extraAPNSHeadersSettings = ['apns-collapse-id' => 'campaign']; $notification->webPushHeadersSettings = ['TTL' => '86400'];
Available Services
| Service ID | Class | Description |
|---|---|---|
redjan_ym_fcm.client |
RedjanYm\FCM\Client |
FCM HTTP V1 API client |
redjan_ym_fcm.notification_factory |
RedjanYm\FCMBundle\NotificationFactory |
Factory for creating device and topic notifications |
Running Tests
composer install vendor/bin/phpunit
License
MIT
redjanym/fcm-bundle 适用场景与选型建议
redjanym/fcm-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 457.54k 次下载、GitHub Stars 达 43, 最近一次更新时间为 2016 年 10 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「symfony」 「php」 「notifications」 「bundle」 「google」 「cloud」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 redjanym/fcm-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 redjanym/fcm-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 redjanym/fcm-bundle 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A Laravel Nova package that adds a notification feed in your Nova app.
The bundle for easy using json-rpc api on your project
Bundle Symfony DaplosBundle
Captures outgoing SMS notifications
Alfabank REST API integration
Laravel package to send notifications when some exceptions are thrown.
统计信息
- 总下载量: 457.54k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 44
- 点击次数: 34
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-10-09