gbradley / updown
与Updown.io轻松集成
Requires
- php: >=7.1.0
README
一个用于updown.io网站监控API的PHP库。创建、检查、修改和删除检查,可选的Laravel集成。
$check = $updown->create('https://mysite.com', [
'alias' => 'MySite',
'period' => 60,
]);
...
$check->delete();
要求
Updown需要PHP 7.1或更高版本。可选的Laravel集成需要5.5或更高。
安装
使用Composer安装
$ composer require gbradley/updown
设置
通过传递API密钥配置updown客户端实例。如果运行的应用程序由updown.io检查,您可以在第二个参数中提供其令牌。
use GBradley\Updown\Client;
...
$updown = new Client('my-api-key', 'my-app-token');
// do stuff
使用
客户端用于获取和获取Check实例,允许您检查、修改和删除单个检查。如果库遇到问题,将抛出GBradley\Updown\ApiException
,并提供尽可能从API响应中获取的错误信息。
客户端
checks()
返回一个按令牌键控的Gbradley\Updown\Check
数组。
$checks = $updown->checks();
$checks['abcd']->alias; // 'MySite'
create()
创建一个新的检查。将第一个参数作为要检查的URL;可以在一个数组中提供任何已记录的选项作为第二个参数。
$check = $updown->create('https://yoursite.com', [
'alias' => 'YourSite',
]);
$check->token; // 'abzy'
check()
检索与提供的令牌匹配的Check对象。如果没有提供,则使用配置的应用程序令牌。
$check = $updown->check('abzy');
$check->alias; // 'YourSite'
ips()
检索用于执行检查的所有IP列表。您可以在第一个参数中指定IP版本;默认为4。
检查
获取器和设置器
要获取检查的数据,只需访问相关属性
$check->alias; // 'MySite'
要将数据设置在检查上,将值分配给属性
$check->alias = 'MySite';
请注意,通过设置器进行的更改将在您调用save()之前不生效。
data()
您还可以使用data()
方法检索有关检查的所有数据。这将返回一个关联数组。
save()
应用对检查所做的任何更改。您可以为此方法提供一个额外的更改数组。
$check->alias = 'MySite';
$check->save([
'period' => 120,
]);
enable()
启用检查。
disable()
禁用检查。
downtimes()
返回检查的停机信息数组;您可以在一个数组中提供任何已记录的选项作为第二个参数。
metrics()
返回检查的度量数组;您可以在一个数组中提供任何已记录的选项作为第二个参数。
delete()
删除检查。
Laravel集成
如果您使用Laravel,该软件包可以通过自动解析客户端、在维护模式下禁用检查和通过webhook监听事件来帮助您。
配置
首先发布配置文件
$ php artisan vendor:publish --Provider=Gbradley\Updown\Laravel\ServiceProvider
默认情况下,config/updown.php
尝试从您的.env
文件中读取UPDOWN_API_KEY
和UPDOWN_APP_TOKEN
。
服务提供者
服务提供者将被自动检测,并使用配置中的凭据配置一个客户端单例。您可以从容器中解析客户端或通过依赖注入。
use GBradley\Updown\Client;
...
public function handle(Client $updown)
{
// do stuff
}
维护模式
如果您的应用程序由updown.io检查,您将希望在维护期间避免运行该检查。如果设置了您的应用程序令牌,该软件包将在您运行artisan down
命令时自动禁用该检查,并在artisan up
之后再次启用它。
如果您想禁用此行为,您可以在配置文件中操作。
Webhook
为了响应updown.io的webhooks,请在config/updown.php
中启用webhooks。webhook URI已被设置为合理的默认值,但您可以根据需要更改它。如果您使用配置和/或路由缓存,现在应该刷新这些缓存。
接下来,前往您的updown.io设置并使用其完整地址添加webhook。现在,您的应用程序将开始接受webhook请求,接下来您只需处理相关事件。
监听器
要监听事件,请创建并注册监听器来监听GBradley\Updown\Laravel\Events\Down
和GBradley\Updown\Laravel\Events\Up
事件。
protected $listen = [
'GBradley\Updown\Laravel\Events\Down' => ['App\Listeners\Down'],
'GBradley\Updown\Laravel\Events\Up' => ['App\Listeners\Up'],
];
当updown.io向您的webhook发送请求时,适当的监听器将接收到包含check
和downtime
属性的event。
public function handle(Down $event)
{
$evnt->check->alias; // 'MySite'
}
广播
如果您想广播 Up
和Down
事件,可能到您的前端,您可以继承它们并在config/updown.php
中指定自定义类。
use GBradley\Updown\Laravel\Events\Down as BaseDown;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class Down extends BaseDown implements ShouldBroadcast
{
...
}
现在,您可以按照Laravel的标准广播程序将内容广播到您的频道。