UserServiceProvider.php 1.8 KB

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