kfit/yii2-notifications

模块,用于管理由系统通过不同通信渠道生成的通知。

dev-master 2020-04-25 17:26 UTC

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 提供的 apikeyhost

另一个必须配置的服务是用于处理推送通知的 onesignal。为此,我们使用 onesignal 服务,它将为我们提供应用程序标识符或 appIdapiKey,此信息将放入 onesignalConfig 位置,以及其连接的驱动程序,默认必须为 \rocketfirm\onesignal\OneSignal。

模块架构。

模块使用一个简单的架构,它基于两个组件

  • Notifications:这是存储在数据库 notifications 表中的信息实体。通知提供了消息的主题和内容以及一些必要的元数据,用于发送。
  • Channels:通道是提供发送通知所需接口的对象,每个通道对应一个服务,在 mailrelay 的情况下有一个 Mailrelay 通道。

高级配置。

在模块的配置中,您还可以传递一些其他配置,以下是对它们的说明。

属性描述默认值
onesignalConfig推送通知服务的配置。[]
mailerConfigSMTP 电子邮件服务的配置。[]
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 开发团队 创建。