joeydendron / fbase-alerts
用于在Firebase实时数据库中创建警报的PHP包
Requires
- php: >=7.3.0
- kreait/firebase-php: <=5.10.0
This package is auto-updated.
Last update: 2024-09-25 04:31:00 UTC
README
简介
我编写了一个简单的Alerter类,以便在PHP项目开发期间向Slack频道发送信息警报。
但偶尔会出现代码在Slack频道中频繁发送多个警报的情况,并且必须通过Slack的UI手动筛选和删除它们,这非常麻烦。
因此,为了熟悉Firebase,我想复制该功能,但使用Firebase后端...这样我就可以构建一个类似于Vue前端,具有快速便捷的警报删除功能的系统。
要求
- PHP >= 7.3
- 一个Firebase项目,其中包含一个具有顶级alerts键的实时数据库。
安装
composer require joeydendron/fbase-alerts
依赖于环境变量以获取Firebase凭据
按照kreait/firebase的设置说明,该包要求您从Firebase下载私钥JSON文件,并将其安全地保存到您的服务器上。您还需要实时数据库URI,我可以在项目设置的“常规”选项卡中的复制粘贴JavaScript片段中找到它。
使用如vlucas/dotenv之类的包或PHP的putenv()函数
- 将JSON文件的路径放入名为JD_FIREBASE_PATH_TO_CREDENTIALS的环境变量中
- 将实时数据库URI放入名为JD_FIREBASE_DB_URI的环境变量中
为什么要使用环境变量?
这意味着我可以创建一个没有任何外部参数的Alerter实例,以便于使用(见下文)。
如何使用
有三个静态函数。每个函数都调用Alerter实例,该实例包含对Firebase DB对象的引用,并将警报推送到数据库的警报集合中。
Alerter::alert($subject, $body)
$body可以是字符串、数字、数组或对象。如果需要,它将通过print_r()转换为字符串。
将服务器主机名添加到$subject之前。
然后推送一个新的警报...作为一个关联数组
[ 'subject' => $subject, 'body' => $body, 'created_at' => mktime() ]
Firebase为警报创建一个有序的、字母数字ID。
Alerter::alertThrowable($subject, Throwable $throwable, $extraContent = [])
使用将$body设置为Throwable的字符串表示形式的Alerter::alert()。
您可以传递一个可选的值数组,这些值也将显示在生成的警报中。因此,您可以编写如下代码:
Alerter::alertThrowable('Oh dear', $throwable, [ 'important_variable' => $myVar ]);
Alerter::alertException($subject, Exception $e, $extraContent = [])