Laravel Notification Channels FCM 项目教程
1. 项目的目录结构及介绍
laravel-notification-channels/fcm/
├── src/
│ ├── FcmChannel.php
│ ├── FcmMessage.php
│ ├── FcmNotification.php
│ ├── FcmServiceProvider.php
│ └── Exception/
│ └── CouldNotSendNotification.php
├── tests/
│ ├── FcmChannelTest.php
│ ├── FcmMessageTest.php
│ └── TestCase.php
├── .gitignore
├── composer.json
├── LICENSE
├── README.md
└── phpunit.xml
src/
:包含项目的核心源代码。FcmChannel.php
:定义了 FCM 消息的发送通道。FcmMessage.php
:定义了 FCM 消息的结构和内容。FcmNotification.php
:定义了如何创建和发送 FCM 通知。FcmServiceProvider.php
:Laravel 服务提供者,用于注册和配置 FCM 通道。Exception/
:包含异常处理类。
tests/
:包含项目的单元测试。.gitignore
:Git 忽略文件配置。composer.json
:Composer 依赖管理文件。LICENSE
:项目许可证。README.md
:项目说明文档。phpunit.xml
:PHPUnit 测试配置文件。
2. 项目的启动文件介绍
项目的启动文件是 FcmServiceProvider.php
,它位于 src/
目录下。这个文件负责在 Laravel 应用中注册和配置 FCM 通道。
namespace NotificationChannels\Fcm;
use Illuminate\Support\ServiceProvider;
class FcmServiceProvider extends ServiceProvider
{
public function boot()
{
$this->app->when(FcmChannel::class)
->needs(FcmService::class)
->give(function () {
return new FcmService(config('services.fcm.key'));
});
}
public function register()
{
$this->app->bind(FcmService::class, function ($app) {
return new FcmService(config('services.fcm.key'));
});
}
}
boot()
方法:在应用启动时注册 FCM 通道和服务。register()
方法:绑定 FCM 服务到应用容器。
3. 项目的配置文件介绍
项目的配置文件需要在 Laravel 应用的 config/services.php
中进行配置。
return [
// 其他服务配置
'fcm' => [
'key' => env('FCM_SERVER_KEY'),
],
];
FCM_SERVER_KEY
:在.env
文件中设置 FCM 服务器密钥。
FCM_SERVER_KEY=your_fcm_server_key
通过以上配置,Laravel 应用可以使用 FCM 通道发送通知。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考