kfit / yii2-notifications
模块,用于管理由系统通过不同通信渠道生成的通知。
dev-master
2020-04-25 17:26 UTC
Requires
- kfit/yii2-core: dev-master
- rocketfirm/yii2-onesignal: *
Requires (Dev)
- symfony/var-dumper: ^4.3@dev
This package is auto-updated.
Last update: 2024-09-26 03:59:05 UTC
README
介绍
允许通过外部服务(如邮件服务器和推送通知)管理系统通知。
安装
使用 Composer
$ composer require kfit/yii2-parameters
应用迁移
$ php yii migrate --migrationPath=@vendor/kfit/yii2-parameters/migrations
在 web.php 文件中需要的配置
'modules'=>[
'notifications' => [
'class' => '\kfit\notifications\Module',
'methodSendMail' => 'mailrelay',
'mailrelayConfig' => [
'apiKey' => '',
'hostName' => 'midominio.ip-zone.com'
],
'mailerConfig' => [
'class' => 'yii\swiftmailer\Mailer',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'mail.midominio.com',
'username' => 'noreply@midominio.com',
'password' => '',
'port' => '587',
'encryption' => 'tls',
'streamOptions' => [
'ssl' => [
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
],
]
],
],
'onesignalConfig' => [
'class' => '\rocketfirm\onesignal\OneSignal',
'appId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx',
'apiKey' => '',
],
]
],
必须为模块添加以下初始设置。位置 methodSendMail 表示将用于发送电子邮件的服务类型,这可以有两个可能的值:mailrelay 和 smtp。每种相关服务都将有一个配置,必须以下列方式提供:
- 对于 smtp:在位置 mailerConfig 提供邮件服务器的所有信息以及连接驱动程序,在我们的例子中我们将使用 Swiftmailer,它提供了通过 SMTP 发送邮件的功能。
- 对于 mailrelay:在位置 mailrelayConfig 提供由 Mailrelay 提供的 apikey 和 host。
另一个必须配置的服务是用于处理推送通知的 onesignal。为此,我们使用 onesignal 服务,它将为我们提供应用程序标识符或 appId 和 apiKey,此信息将放入 onesignalConfig 位置,以及其连接的驱动程序,默认必须为 \rocketfirm\onesignal\OneSignal。
模块架构。
模块使用一个简单的架构,它基于两个组件
- Notifications:这是存储在数据库 notifications 表中的信息实体。通知提供了消息的主题和内容以及一些必要的元数据,用于发送。
- Channels:通道是提供发送通知所需接口的对象,每个通道对应一个服务,在 mailrelay 的情况下有一个 Mailrelay 通道。
高级配置。
在模块的配置中,您还可以传递一些其他配置,以下是对它们的说明。
属性 | 描述 | 默认值 |
---|---|---|
onesignalConfig | 推送通知服务的配置。 | [] |
mailerConfig | SMTP 电子邮件服务的配置。 | [] |
mailrelayConfig | 通过 Mailrelay 的电子邮件服务的配置。 | [] |
methodSendMail | 发送电子邮件的方法,这可以是 SMTP 或 Mailrelay。 | 'smtp' |
channels | 模块的默认通道配置,这些可以修改以扩展功能或创建新通道。 | {请查看以下代码以检查表} |
breadcrumbsBase | 与模块中显示的面包屑进行排列。 | null |
controllerNamespace | 模块控制器的位置。 | 'kfit\notifications\controllers' |
[
'smtp' => [
'class' => 'kfit\notifications\components\channels\EmailChannel'
],
'onesignal' => [
'class' => 'kfit\notifications\components\channels\OnesignalChannel'
],
'mailrelay' => [
'class' => 'kfit\notifications\components\channels\MailRelayChannel'
],
'sms' => [
'class' => 'kfit\notifications\components\channels\SMSChannel'
],
]
许可证
BSD-3-Clause. 由:KulturFit 开发团队 创建。