使用 Paragraph 的新软件包深入了解您的所有 Laravel 通知

最后更新于 作者:

Get insights into all your Laravel notifications with Paragraphs new package image

当 Laravel 在 2016 年引入 Notification 类时,它允许我们所有人都能够以非常简单直观的方式开始向客户发送任何交易性通信。 现在,您的产品中可能已经有数十个 Notification 类,并且每天发送数百或数千封电子邮件和短信。

如果能够更好地控制它,那岂不是很好吗? 比如说,在客户联系到客户支持后,我希望能够看到过去 30 天里我到底给他/她发送了什么。 通知的内容是什么——里面的信息准确吗?还是引起了混淆?我们每天发送多少个通知?哪种通知类型花费我们最多的钱?所有通知在手机上看起来都很好吗?我们是否有错别字?是否有风格不一致的情况?

通知 X 是如何触发的?我们的用户打开通知 Y 的频率如何?也许我们应该直接删除它?

等等。

关键是——通知是我们产品的重要组成部分,是我们告诉客户发生了什么以及接下来该做什么或期待什么的方式,因此,开始更好地管理它们可能非常、非常有用。 这将使我们能够提高客户满意度并降低成本。

一款有帮助的新软件包

好消息是,这样的工具已经存在——我们 Paragraph 刚刚发布了一个 Laravel composer 软件包。 您只需几秒钟即可获得更多关于传出通信的可见度。

安装过程与安装一个 composer 软件包一样简单

$ composer require paragraph/laravel-notifications

就是这样! 该软件包会自动注册,并已挂钩到通知渲染过程。 如果您在 Laravel 应用程序中发送任何通知,您应该能够看到 storage/app/comms 文件夹中弹出了新的文件。

现在数据已经被收集,我们需要不时将其发送到 Paragraph 仪表板,理想情况下以计划的 cron 命令的形式。 为此,我们需要在环境文件中(或真实的 OS 环境中)提供 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

瞧,我们现在可以在 Paragraph 仪表板中看到通知历史记录

数据包括使用的通知通道、收件人 ID(可以且应该匿名化)、当前状态(如果通过集成可用)和预览按钮。

当然,这仅仅是开始。

通知触发器

如果您点击第一列中的任何通知类型,您将进入一个页面,其中包含有关此通知类的更多高级信息,包括其触发器

我们的软件包会自动发现通知流程——何时以及如何触发,以便您可以确保一切按设计工作。

在上面的示例中,我们可以看到,通知是通过一个监听器发送的,该监听器被一个事件触发,该事件是在一个 Web 控制器中触发的,因此根本原因是用户在您的网站上采取的操作。

打开率和成本分析

在同一页面上,您可以看到一些关于此特定通知类型的统计数据——在给定时间段内发送了多少次,打开率(来自集成,例如 Mailgun API)以及总花费。

这使您能够快速识别给公司带来很大成本但可能根本没有打开的交易性电子邮件或短信。

文案审查和更新

如果您点击“查看”,您可以看到发送的电子邮件的渲染 HTML、短信的完整副本等等

点击“在 GitHub 中查看”,快速跳转到包含此文本的 GitHub 文件并进行一些简单的文本更新。

作为一项额外的功能,我们还会检查文案是否存在任何语法错误和错别字,并将发现的任何内容显示在 Notification 类页面上。

本地化?太简单了!

需要将您的通知翻译成不同的语言? 太简单了! 您可以使用 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) {
}

因此,从性能和客户体验的角度来看,使用此软件包非常安全。

立即免费加入

听起来很有趣吗? 那么请访问 Paragraph,导入一个项目 https://paragraph.ph/repos/import,这样您就可以改进产品通知,让客户更满意,并让您的资产负债表更轻松。 本月作为公开测试版发布的一部分,加入完全免费!

Eric L. Barnes photo

Eric 是 Laravel 新闻的创建者,自 2012 年以来一直在报道 Laravel。

归档于
Cube

Laravel 新闻通讯

加入 40,000 多名其他开发者,永不错过新的提示、教程等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动完成和本地和生产环境的即时反馈来调试代码。

Tinkerwell
No Compromises logo

绝不妥协

Joel 和 Aaron,两位来自 No Compromises 播客的经验丰富的开发者,现在可以为您的 Laravel 项目雇用。⬧ 固定费用为每月 7500 美元。 ⬧ 无冗长的销售流程。 ⬧ 无合同。 ⬧ 100% 退款保证。

绝不妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,以确保您的 Web 应用程序成功。

Kirschbaum
Shift logo

Shift

运行旧版本的 Laravel?即时、自动化的 Laravel 升级和代码现代化,使您的应用程序保持最新。

Shift
Bacancy logo

Bacancy

以每月仅 2500 美元的价格,为您的项目配备经验丰富的 Laravel 开发人员,拥有 4-6 年的经验。获得 160 小时的专业知识和 15 天无风险试用。立即预约通话!

Bacancy
Lucky Media logo

Lucky Media

立即获得幸运 - Laravel 开发的理想选择,拥有超过十年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar: Laravel 电子商务

Laravel 的电子商务。一个开源软件包,将现代无头电子商务功能的强大功能带到 Laravel。

Lunar: Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 职位板

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit: Laravel SaaS 启动工具包

SaaSykit 是一个 Laravel SaaS 启动工具包,包含运行现代 SaaS 所需的所有功能。支付、精美结账、管理面板、用户仪表板、身份验证、即用型组件、统计、博客、文档等等。

SaaSykit: Laravel SaaS 启动工具包
Rector logo

Rector

您在无缝 Laravel 升级、降低成本和加速创新方面的合作伙伴,为成功公司提供服务

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成来增强您的 PHP 应用程序,使开发人员能够轻松高效地构建应用程序。支持事务、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。了解 MongoDB 的灵活、现代数据库如何改变您的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的零依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

将 Swagger UI 添加到您的 Laravel 应用程序

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel 提示构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 包在您的 Laravel 应用程序中添加评论

阅读文章