风信2017/hyperf-ding

v1.0.8 2022-11-28 08:25 UTC

This package is auto-updated.

Last update: 2024-09-28 12:17:45 UTC


README

安装

$ composer require fengxin2017/hyperf-ding -vvv

$ php bin/hyperf.php vendor:publish fengxin2017/hyperf-ding

使用

use Fengxin2017\HyperfDing\Ding;

$ding = new Ding([
                    'token' => 'xxxx',
                    'secret' => 'xxxxx',
                    'name' => 'foo'
                    // ....
                ]);

$ding->text('API');
$ding->markdown('### 标题');
$ding->exception(new Exception('出问题啦'));

$ding = new Ding([
                    'token' => 'xxxx',
                    'secret' => 'xxxxx',
                    'name' => 'bar'
                    // ....
                ]);

// 覆盖配置默认配置
$ding->setName('baz')
    ->setTrace(true)   // 开启异常堆栈追踪
    ->setReportFrequency(20)  // 异常上报时间间隔
    ->exception(new Exception('出问题')); 


$ding = new Ding();

// 对应配置中的`prod`配置
$ding->prod()->text('我是生产机器人');

// 对应配置中的`dev`配置 
$ding->dev()->exception(new Exception('开发异常'));

助手函数

// 默认配置取config/ding.php的default

ding()->text('API 线上调试时很有用哦');
ding()->markdown('### 标题');
ding()->exception(new Exception('出问题啦'));

// 覆盖配置,没设置到的地方会使用对应机器人默认配置
ding()->setName('prod')
    ->setTrace(true)   // 开启异常堆栈追踪
    ->setReportFrequency(20)  // 异常上报时间间隔
    ->exception(new Exception('出问题')); 

// 调用其他机器人
ding('dev')->markdown('> 我是开发机器人');
ding('dev')->notice('这是一个通知消息以MARKDOWN形式展示,且自带请求相关信息');
ding()->prod()->text('我是生产机器人');

// 自定义配置调用
ding([
    'token' => 'xxxx',
    'secret' => 'xxxxx',
    'name' => 'eth'
    // ....
])->text('uniswap');

ding([
    'token' => 'xxxx',
    'secret' => 'xxxxx',
    'title' => 'eth'
    // ....
])->exception(new Exception('eip1559'));

ding()->setToken()->setSecret()->setName('xxx')->text('文本');
ding()->setToken()->setSecret()->exception(new Exception('异常拉'));

推荐使用DINGDING自定义机器人调用

机器人调用为单例模式,不支持动态修改配置。

类名以配置中机器人的驼峰式首字母大写命名。

// 配置文件
<?php

return [
    // 默认机器人
    'default' => 'dev',

    // 配置
    'bots' => [
        // 生产环境
        'prod' => [
            'token' => '',
            'secret' => '',
            // 钉钉报错标题
            'name' => '生产环境',
            // 异常发生时是否开启追踪
            'trace' => true,
            // 相同异常发生时每多少秒上报一次。
            'report_frequency' => 10,
        ],
        // 开发环境
        'dev' => [
            'token' => '',
            'secret' => '',
            // 钉钉报错标题
            'name' => '开发环境',
            // 异常发生时是否开启追踪
            'trace' => true,
            // 异常发生时是否限制上报频率
            'limit' => true,
            // 相同异常发生时每多少秒上报一次。
            'report_frequency' => 10,
        ],
    ]
];

// 创建一个生产环境机器人、创建一个开发环境机器人
<?php
namespace App\Ding\Bots;
use Fengxin2017\HyperfDing\Bot;

class Prod extends Bot
{
}

class Dev extends Bot
{
}

// 调用方式
<? php
use App\Ding\Bots\Prod;
use App\Ding\Bots\Dev;

Prod::markdown('### 这是标题');
Dev::text('API 线上调试时很有用哦');
Dev::notice('这是一个通知消息');
// 在ExceptionHandler里加入机器人捕获异常并上报钉钉对线上调试非常管用
Prod::exception(new Exception('出错啦'));

贡献

您可以通过以下三种方式之一进行贡献

  1. 使用 问题跟踪器 提交错误报告。
  2. 问题跟踪器 上回答问题或修复错误。
  3. 贡献新功能或更新Wiki。

代码贡献过程不是很正式。您只需要确保遵循PSR-0、PSR-1和PSR-2编码规范。任何新的代码贡献都必须附有相应的单元测试(如果适用)。

许可证

MIT