deegitalbe / laravel-trustup-io-slack-notifications
基本版本化 PHP 包。
v1.0.0
2022-12-21 13:29 UTC
Requires
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.5
README
此包增强 Laravel Slack 通知,允许发送直接消息。
安装
需要包
composer require deegitalbe/laravel-trustup-io-slack-notifications
环境变量
SLACK_API_TOKEN=
使用方法
配置您的模型
use Illuminate\Database\Eloquent\Model; use Deegitalbe\LaravelTrustupIoSlackNotifications\Traits\Slack\SlackNotifiable; use Deegitalbe\LaravelTrustupIoSlackNotifications\Contracts\Slack\SlackNotifiableContract; use Illuminate\Notifications\Notification; class User extends Model implements SlackNotifiableContract { use SlackNotifiable; }
配置您的通知
扩展 Slack 通知
use Illuminate\Notifications\Messages\SlackMessage; use Deegitalbe\LaravelTrustupIoSlackNotifications\SlackNotification; use Deegitalbe\LaravelTrustupIoSlackNotifications\Enum\SlackChannel; class OrderReceived extends SlackNotification { public function slackChannel($notifiable): string|SlackChannel { return SlackChannel::PRODUCTS; } public function slackMessage(SlackMessage $message, $notifiable): SlackMessage { return $message->content("A new order has been made."); } }
实现合约和使用特质
use Illuminate\Notifications\Messages\SlackMessage; use Deegitalbe\LaravelTrustupIoSlackNotifications\Enum\SlackChannel; use Deegitalbe\LaravelTrustupIoSlackNotifications\Traits\Slack\IsSlackNotification; use Deegitalbe\LaravelTrustupIoSlackNotifications\Contracts\Slack\SlackNotificationContract; class OrderReceived extends Notification implements SlackNotificationContract { use IsSlackNotification; public function slackChannel($notifiable): string|SlackChannel { return $notifiable->getSlackId(); } public function slackMessage(SlackMessage $message, $notifiable): SlackMessage { return $message->content("A new order has been made."); } }