joeydendron/fbase-alerts

用于在Firebase实时数据库中创建警报的PHP包

dev-master 2022-10-25 00:22 UTC

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 = [])