fred / laravel-slack
Slack 服务提供者和消息编辑器
1.2.0
2020-11-20 06:37 UTC
Requires
- php: >=7.2
- ext-json: *
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- orchestra/testbench: ^3.8
- phpunit/phpunit: ^8.2
This package is auto-updated.
Last update: 2024-09-20 15:30:05 UTC
README
Slack 服务提供者
本项目以服务提供者方式
为 laravel/lumen
项目提供 Slack 物件操作
将 错误/消息
传递到 Slack 频道
安装
执行 composer 安装,在根目录下命令
composer require fred/laravel-slack
laravel/lumen
项目下配置 SlackServiceProvider
[lumen] - 在 /bootstrap/app.php
中加入
$app->register(Fred\SlackService\SlackServiceProvider::class);
[laravel] - 支持 laravel 自动发现
如果 Laravel 版本不支持,则需要手动在 /config/app.php
中加入
'providers' => [ //... Fred\SlackService\SlackServiceProvider::class, ];
应用配置文件
[laravel] - 在项目目录下通过 artisan 命令
$ php artisan vendor:publish --provider="Fred\SlackService\SlackServiceProvider" --tag="config"
[lumen] - 在 /config
文件夹下放入 slack.php
到 /config/slack.php
设置内容
return [ // 可設定多組 client 面對不同的 slack channel 及用途 // key 值必需做區分 'clients' => [ // 'clientName' => [] // service provider 將綁定名稱為 "slack-{client_name}" 的 instance 在 container 中 'error-report' => [ 'endpoint' => 'https://hooks.slack.com/services/xxxxxxx', // slack web hook url 'channel' => 'my-test-channel', // slack channel 'username' => 'Error Report' // slack messages' user name ], 'custom-name' => [ // 其他組 slack client 設定 ], ], ];
使用方式
以下根据上述的注册示例扩展
基本传递消息
$slack = app('slack-error-report'); $slack->compose(function (Message $message) { $message->setText('slack message sending!'); return $message; })->send();
通过 MessageComposer
应用模板,增强消息内容
$slack = app('slack-error-report'); $slack->compose(function (Message $message) { // 產生 MessageComposer 物件 $messageComposer = new Fred\SlackServiceProvider\MessageComposer($message); // 套用模板所需的參數和值,預設使用 Exception template $data = [ 'exceptionContent' => 'Invalid user id', 'requestContent' => 'https://oobox.com.tw', 'envContent' => 'testing', 'timeContent' => Carbon\Carbon::now()->toDateTimeString(), 'traceContent' => "error trace code", ]; $messageComposer->apply($data); return $messageComposer->getMessage(); })->send();
默认模板 (Exception template) 可用变量列表
- exceptionTitle: 例外标题 (默认: Exception)
- exceptionContent: 例外内容
- requestTitle: 请求 URL 标题 (默认: Request)
- requestContent: 请求 URL
- envTitle: 环境标题 (默认: Environment)
- envContent: 环境
- timeTitle: 时间标题 (默认: Time)
- timeContent: 时间
- traceTitle: code trace 标题 (默认: Trace)
- traceContent: code trace
自定义模板
要自定义模板,请参考 slack
负载文件,示例可参考套件预定义的 exception template /src/templates/ExceptionTemplate.php
生成 MessageComposer 物件后带入自定义的模板路径
// ... // 產生 MessageComposer 物件 $messageComposer = new Fred\SlackServiceProvider\MessageComposer($message); // 帶入自定義的模板路徑 $messageComposer->useTemplate('/path/to/template'); // 後續組成資料 $data = []; $messageComposer->apply($data); return $messageComposer->getMessage(); // ...