syedaunn / laravel-slack-output
当您的Laravel应用程序出现错误时,向Slack发送消息。
Requires
- php: >=5.5.9
- illuminate/console: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*
- illuminate/queue: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*
- illuminate/support: 5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*
- maknz/slack: ~1.7
README
此包提供
-
后命令
使用Laravel命令向Slack发送消息。
-
统计命令
使用此可定制的命令发送您的Laravel应用程序的统计信息。
-
异常处理程序
在异常发生时输出有关异常的有用信息到Slack。
-
失败作业处理程序
当作业失败时获得警告。
-
计划命令报告
关注您计划命令的结果。
需求
- Laravel 5.1或更高版本
- PHP 5.5.9或更高版本
安装
您可以使用Composer包管理器安装此包。您可以在项目的根目录中运行以下命令来安装它
composer require syedaunn/laravel-slack-output
您需要在Laravel应用程序中包含服务提供者和外观。
将服务提供者添加到config/app.php文件中的providers数组
'providers' => [ ... SyedAunn\SlackOutput\ServiceProvider::class, ],
然后添加外观到您的aliases数组
'aliases' => [ ... 'SlackOutput' => SyedAunn\SlackOutput\Facade\SlackOutput::class, ],
使用以下命令发布配置文件
php artisan vendor:publish --provider="SyedAunn\SlackOutput\ServiceProvider"
为了使包能够向Slack发送消息,您需要将webhook URL添加到配置文件中。在您的Slack账户上创建一个入站webhook。复制webhook URL并打开config/slack-output.php,将webhook URL设置为endpoint。
如果为任何设置设置了null,则包将回退到webhook设置的默认设置。
用法
后命令
命令slack:post将消息发布到Slack。它可以接受以下参数
message:要发送的消息to:要发布到的频道或人员attach:附件有效负载
您可以在此处找到有关attach参数的信息。
您可以通过运行以下命令来调用它
php artisan slack:post "Hello, I'm a bot" @nico
您也可以在您的Laravel应用程序中调用它
Artisan::queue('slack:post', [ 'to' => "#api-output", 'attach' => $someAttachment, 'message' => "Hello, I'm a bot" ]);
注意Artisan::queue,该命令将在后台执行,不会阻塞当前请求。
统计命令
命令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 SyedAunn\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 SyedAunn\SlackOutput\Facade\SlackOutput; ... public function boot() { Queue::failing(function (JobFailed $job) { SlackOutput::jobFailed($job); }); }
计划命令报告
要向Slack报告计划命令的输出,打开app/Console/Kernel.php,并将其转换为以下内容
use SyedAunn\SlackOutput\Facade\SlackOutput; ... protected function schedule(Schedule $schedule) { SlackOutput::scheduledCommand( $schedule->command('db:backup-auto')->daily() ); }
贡献
如果您遇到问题,发现错误或有任何功能建议,请请在GitHub上添加问题。也欢迎提交拉取请求!
许可证
此包是开源软件,许可协议为MIT许可证



