codegym / laravel-slack-output
当您的 Laravel 应用程序出现问题时,向 Slack 发送消息。
Requires
- php: >=5.5.9
- illuminate/console: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*
- illuminate/queue: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*
- illuminate/support: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*
- maknz/slack: ~1.7
This package is auto-updated.
Last update: 2024-09-16 23:12:38 UTC
README
将您的 Laravel 应用程序的消息发送到 Slack。
此包提供
-
后命令
使用 Laravel 命令向 Slack 发送消息。
-
统计命令
使用此可定制的命令发送有关您的 Laravel 应用的统计信息。
-
异常处理器
当异常发生时,输出有关异常的有用信息到 Slack。
-
失败作业处理器
当作业失败时收到警报。
-
计划命令报告
关注您计划命令的结果。
要求
- Laravel 5.1 或更高版本
- PHP 5.5.9 或更高版本
安装
您可以使用 Composer 包管理器安装此包。您可以在项目根目录中运行以下命令进行安装
composer require codegym/laravel-slack-output
您需要在您的 Laravel 应用程序中包含服务提供者和外观。
在 config/app.php
中的 providers
数组中添加服务提供者
'providers' => [ ... CodeGym\SlackOutput\ServiceProvider::class, ],
然后将外观添加到您的 aliases
数组中
'aliases' => [ ... 'SlackOutput' => CodeGym\SlackOutput\Facade\SlackOutput::class, ],
使用
php artisan vendor:publish --provider="CodeGym\SlackOutput\ServiceProvider"
您需要将 webhook URL 添加到配置文件中,以便包能够向 Slack 发布。在您的 Slack 账户上 创建一个传入 webhook。复制 webhook URL 并打开 config/slack-output.php
,将 webhook URL 设置为 endpoint
。
如果任何设置为 null
,则包将回退到 webhook 设置的默认设置。
使用方法
后命令
命令 slack:post
将消息发布到 Slack。它可以接受以下参数
message
: 要发送的消息to
: 要发布到的频道或人员attach
: 附件有效负载
您可以在这里找到有关 attach 参数的信息:https://api.slack.com/docs/attachments
您可以通过运行以下命令来调用它
php artisan slack:post "Hello, I'm a bot" #channel
您也可以在您的 Laravel 应用程序中调用它
Artisan::call('slack:post', [ 'to' => "#api-output", 'attach' => $someAttachment, 'message' => "Hello, I'm a bot" ]);
注意 Artisan::call
,该命令将在后台执行,不会阻塞当前请求。
统计命令
命令 slack:stats
将有关应用程序的有用统计信息发送到 Slack。
您需要通过在 config/slack-output.php
中设置您首选的 Eloquent 类和日期来配置此命令。
您可以对类添加约束,以限制计数的数量。
'classes' => [ \App\Models\User::class => [ 'is_active' => true //optional constraint ] ],
日期数组的形式为 'date name' => Carbon::instance()
。例如
'dates' => [ 'yesterday' => \Carbon\Carbon::yesterday(), 'last week' => \Carbon\Carbon::today()->subWeek(1) ]
要每天安排此命令,简单地将以下内容添加到 app/Console/Kernel.php
protected function schedule(Schedule $schedule) { $schedule->command('slack:stats')->daily() }
异常处理器
要向 Slack 报告有用的异常,请打开 app/Exceptions/Handler.php
并进行如下转换
use CodeGym\SlackOutput\Facade\SlackOutput; ... public function report(Exception $e) { if ($this->shouldReport($e)) { SlackOutput::exception($e); } parent::report($e); }
这将仅报告不在同一文件中的 $dontReport
数组中的异常。
失败作业处理器
要向 Slack 报告失败的作业,请打开 app/Providers/AppServiceProvider.php
并进行如下转换
use CodeGym\SlackOutput\Facade\SlackOutput; ... public function boot() { Queue::failing(function (JobFailed $job) { SlackOutput::jobFailed($job); }); }
计划命令报告
要向 Slack 报告计划命令的输出,请打开 app/Console/Kernel.php
并进行如下转换
use CodeGym\SlackOutput\Facade\SlackOutput; ... protected function schedule(Schedule $schedule) { SlackOutput::scheduledCommand( $schedule->command('db:backup-auto')->daily() ); }
贡献
如果您遇到问题、发现bug或有功能建议,请在GitHub上提交一个issue。我们也非常欢迎pull requests!
许可证
本软件包是开源软件,使用MIT许可证授权。