NotificationServiceProvider.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace App\Module\Notification\Providers;
  3. use App\Module\Mail\Hooks\MailNotificationHook;
  4. use App\Module\Push\Hooks\PushNotificationHook;
  5. use App\Module\Sms\Hooks\SmsNotificationHook;
  6. use App\Module\Notification\Services\HookManager;
  7. use Illuminate\Support\ServiceProvider;
  8. class NotificationServiceProvider extends ServiceProvider
  9. {
  10. /**
  11. * 注册服务
  12. *
  13. * @return void
  14. */
  15. public function register(): void
  16. {
  17. $this->app->singleton(HookManager::class, function ($app) {
  18. $hookManager = new HookManager();
  19. // 注册短信Hook
  20. $hookManager->register($app->make(SmsNotificationHook::class));
  21. // 注册邮件Hook
  22. $hookManager->register($app->make(MailNotificationHook::class));
  23. // 注册推送Hook
  24. $hookManager->register($app->make(PushNotificationHook::class));
  25. return $hookManager;
  26. });
  27. }
  28. /**
  29. * 启动服务
  30. *
  31. * @return void
  32. */
  33. public function boot(): void
  34. {
  35. // 可以在这里添加其他启动逻辑
  36. }
  37. }