githen/laravel-common

基于Laravel的公用方法

v1.0.31 2024-09-29 10:38 UTC

README

基于laravel的通用组件

image image image

安装

composer require githen/laravel-common:~v1.0.0

功能说明

服务状态检测

调用方法

// token => ***  为钉钉群机器人的access_token
// secret => ***  为钉钉群机器人的加签,不填则走关键词或IP
// 以上两个参数可复用`logging.channels.dingding.with`中配置,可直接在`listen`方法中第二个参数为`true`即可。

app('jiaoyu.common.process')->listen([
'process' => [
    'nginx' => 'Nginx服务', // key 为匹配关键词  name 为显示名称
    'artisan,shixun' => '多层过滤' // key中,为多层过滤 a,b  => grep a | grep b
    ],
 'token' => '***',
 'secret' => '***' 
]);

可以在任务调度中直接使用

 $schedule->call(function (){
    app('jiaoyu.common.process')->listen(['process' => ['nginx' => 'nginx']], true);
 })->everyFiveMinutes()->runInBackground();

执行SQL

添加路由

Route::match(['get', 'post'], 'sql/{act?}', '\\Githen\\LaravelCommon\\App\\Controllers\\SqlController@act')->name('sql.act');
  1. 可在路由配置中添加以下配置,完成SQL操作的控制器注入,并可通过访问 http://host/sql/ 来执行。
  2. 可查看当前配置的数据库连通情况(暂只支持 mysql,mongo,redis),通过访问 http://host/sql/check 来查看

钉钉WebHook消息发送

钉钉手册地址:官方手册

调用方法

// token => ***  为钉钉群机器人的access_token
// secret => ***  为钉钉群机器人的加签,不填则走关键词或IP
// ->***()  ***为目前支持的方法,可参考接下文档
app('jiaoyu.common.dingding', ['token' => '*****','secret' => '****'])->***();

发送消息信息

text(string $message, bool $isAll = false, array $mobilds = [], array $userIds = [])

发送链接消息

link(string $title, string $text, string $url, string $picUrl = '')

发送markdown类型

markdown(string $title, string $text, bool $isAll = false, array $mobiles = [], array $userIds = [])

整体/独立跳转ActionCard

actionCard(string $title, string $text, array $btns, string $btnOrientation = '')

FeedCard类型消息

feedCard(array $links)

$links的结构如下:

[
    ['title' => '我是标题2', 'messageURL' => 'https://链接地址2', 'picURL' => '图片的地址2'],
    ['title' => '我是标题1', 'messageURL' => 'https://链接地址1', 'picURL' => '图片的地址1'],
    ...
]

日志发送到钉钉

config/logging.php中添加新的配置项,以新建基于钉钉的日志通道(目前本地环境是关闭发送消息)。

可通过修改本地config中的app.evn来发送本地报警信息。

        'dingding' => [
            'driver' => 'monolog',
            'level' => 'debug',
            'with' => ['token' => '钉钉机器人的access_token','secret' => '不填则走关键词或IP'],
            'handler' => \Githen\LaravelCommon\Log\Handler\DingdingLogHandler::class
        ],

若需要此配置生效,需要在stack.channels中添加dingding关键词

日志信息查看

此扩展中已完成了基本的日志及进程等功能,需要在routes/web.php中添加路由来访问此控制器。

// log/{act} 中 log关键字可自定义,{act}不可修改
// 路由名可随意修改

Route::get('log/{act?}', '\\Githen\\LaravelCommon\\App\\Controllers\\LogController@act')->name('log.act');