使用"Paragraphs"软件包,深入了解你的所有Laravel通知类
Laravel  /  管理员 发布于 1年前   298
当 Laravel 在 2016 年引入通知类时,它让我们所有人都能以一种非常简单、直观的方式
开始向客户发送任何事务性通信。
现在,你的产品中可能已经有了几十个通知类,每天都要发送成百上千封电子邮件和短信。
如果能对其进行更好的控制,岂不更好?
比方说,在客户来寻求客户支持后,我希望能看到在过去 30 天里我到底给他或她发送了什么。
通知中说了些什么--其中的信息是否准确,还是我们造成了混乱?
我们每天发送多少通知?哪种通知类型花费最多?所有通知在手机上看起来都很棒吗?
是否有错别字,是否有风格不一致的地方?
通知 X 是如何触发的?用户打开通知 Y 的频率是多少?也许我们应该删除它?等等。
问题的关键在于,通知是我们产品的重要组成部分,是我们告诉客户刚刚发生了什么以及下一步该做什么或期待什么的方式,
因此,开始更好地管理通知可能会非常非常有帮助。这将使我们提高客户满意度并降低成本。
有帮助的新软件包
好消息是,这样的工具已经有了--我们在 Paragraph 刚刚发布了一个 Laravel composer 软件包。
只需几秒钟,您就可以获得更多的外发通信可见性。
安装就像安装一个composer包一样简单:
composer require paragraph/laravel-notifications
就是这样!软件包已自动注册,并挂钩到通知渲染过程中。
如果你在 Laravel 应用程序中发送了任何通知,
你应该能在 storage/app/comms 文件夹中看到新的小文件弹出。
既然数据已经收集完毕,我们就必须不时地将其发送到 Paragraph dashboard,
最好是以计划 cron 命令的形式。
为此,我们需要在环境文件(或实际操作系统环境)中提供 API 凭据:
# Anywhere in your .env file
PARAGRAPH_PROJECT_ID=XXX
PARAGRAPH_API_KEY=YYY
要获取 API 密钥和项目 ID,只需在 Paragraph 上创建一个项目,
这只需花一分钟或更少时间:
https://paragraph.ph/repos/import
现在可以运行控制台命令,提交历史记录并删除任何临时文件:
php artisan paragraph:submit
我们现在可以在段落仪表板中看到通知历史记录了:
这些数据包括使用的通知渠道、收件人 ID(可以也应该匿名)、当前状态(如果通过集成提供)
和预览按钮。
通知触发器
如果点击第一列中的任何通知类型,就会进入一个页面,其中包含该通知类别的一些高级信息,
包括其触发器:
我们的软件包会自动发现通知流程--何时触发、如何触发,这样您就可以确保一切都按照设计进行。
在上面这个例子中,我们可以看到通知是从一个监听器发出的,
而该监听器是由网络控制器中触发的事件触发的,因此根本原因是用户在网站上进行了操作。
打开率和成本分析
在同一页面上,您可以看到有关该特定通知类型的一些统计信息
--在给定时间内发送了多少次、打开率(通过 Mailgun API 等集成返回)以及花费的总成本。
这可以让你快速识别出那些让公司付出高昂成本,却可能根本不会经常被打开的事务性邮件或短信。
副本审查和更新
如果点击 "查看",您可以看到已发送电子邮件的 HTML 渲染图、短信的完整副本等:
点击 "View in GitHub"(在 GitHub 中查看),即可快速跳转到 GitHub 中包含该文本的文件,
并轻松进行文本更新。
另外,我们还会检查文本中是否有语法错误和错别字,并将发现的错误显示在通知类页面上。
本地化
需要将通知翻译成不同的语言?哦,太简单了!
您可以使用 Paragraph 的本地化软件包,自动将所有文本提交到在线市场(如 Gengo),
然后应用收到的翻译,无需手动操作。
您可以使用辅助功能来实现这一点:
public function toMail(object $notifiable): MailMessage
{
return (new MailMessage)
->line(text('The introduction to the notification.'))
->line(text('Thank you for using our application!'));
}
或Blade组件:
<p>
<x-text comment="This paragraph explains how Paragraph can help localize an app">
Need to translate your notifications into different languages? Oh, too easy!
You can use Paragraph’s localization package to automatically submit all
your texts to online marketplaces like Gengo and then apply the
translations received, no manual work involved.
</x-text>
</p>
性能影响
您可能想知道对应用程序性能有什么影响。
毕竟,每次发送通知时,我们都要运行一些额外的代码,而每天发送的通知可能有数千或数百万个。
我们的代码平均运行时间为 1 毫秒或更短,其中的同步组件会尽量减少运行时间,
以确保将影响降到最低。钩子会将渲染的快照保存到一个临时文件中,并就此停止,
任何 API 调用都将在稍后阶段以异步方式单独进行。
快照文件使用 Zip 压缩,以确保占用最少的硬盘空间,而且我们的代码实际上是在通知发送后运行的。
此外,它还被包裹在 try-catch 子句中,因此任何 Throwable 都会被捕获,
您的代码可以继续运行,就像什么都没发生过一样:
try {
$html = $message->getSymfonySentMessage()->getOriginalMessage()->getHtmlBody();
$this->save(
$html,
get_class($notification)
);
} catch (\Throwable $e) {
}
因此,从性能和客户体验的角度来看,使用该软件包都是非常安全的。
相关链接
https://paragraph.ph/
https://paragraph.ph/repos/import
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号