UserServiceProvider.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace App\Module\User\Providers;
  3. use App\Module\AppGame\Events\LoginSuccessEvent;
  4. use App\Module\User\Events\UserCreatedEvent;
  5. use App\Module\User\Events\UserInfoUpdatedEvent;
  6. use App\Module\User\Events\UserStatusChangedEvent;
  7. use App\Module\User\Events\UserUpdatedEvent;
  8. use App\Module\User\Listeners\LoginSuccessListener;
  9. use App\Module\User\Listeners\UserEventListener;
  10. use Illuminate\Support\ServiceProvider;
  11. /**
  12. * 用户模块服务提供者
  13. */
  14. class UserServiceProvider extends ServiceProvider
  15. {
  16. /**
  17. * 事件到监听器的映射
  18. *
  19. * @var array
  20. */
  21. protected $listen = [
  22. // 监听来自其他模块的事件
  23. LoginSuccessEvent::class => [
  24. LoginSuccessListener::class,
  25. ],
  26. // 用户模块内部事件
  27. UserCreatedEvent::class => [
  28. UserEventListener::class . '@handleUserCreated',
  29. ],
  30. UserUpdatedEvent::class => [
  31. UserEventListener::class . '@handleUserUpdated',
  32. ],
  33. UserStatusChangedEvent::class => [
  34. UserEventListener::class . '@handleUserStatusChanged',
  35. ],
  36. UserInfoUpdatedEvent::class => [
  37. UserEventListener::class . '@handleUserInfoUpdated',
  38. ],
  39. ];
  40. /**
  41. * 需要注册的订阅者
  42. *
  43. * @var array
  44. */
  45. protected $subscribe = [
  46. UserEventListener::class,
  47. ];
  48. /**
  49. * 注册服务
  50. *
  51. * @return void
  52. */
  53. public function register(): void
  54. {
  55. }
  56. /**
  57. * 启动服务
  58. *
  59. * @return void
  60. */
  61. public function boot(): void
  62. {
  63. // 注册事件监听器
  64. $this->registerEvents();
  65. }
  66. /**
  67. * 注册事件和监听器
  68. *
  69. * @return void
  70. */
  71. protected function registerEvents(): void
  72. {
  73. $events = $this->app['events'];
  74. foreach ($this->listen as $event => $listeners) {
  75. foreach ($listeners as $listener) {
  76. $events->listen($event, $listener);
  77. }
  78. }
  79. foreach ($this->subscribe as $subscriber) {
  80. $events->subscribe($subscriber);
  81. }
  82. }
  83. }