DevServiceProvider.php 1.4 KB

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