AppGameServiceProvider.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace App\Module\AppGame\Providers;
  3. use App\Module\AppGame\Events\ProtobufResponseEvent;
  4. use App\Module\AppGame\HttpControllers\ProtobufController;
  5. use App\Module\AppGame\Listeners\AppGameProtobufResponseListener;
  6. use App\Module\AppGame\Listeners\GameProtobufResponseListener;
  7. use App\Module\AppGame\Listeners\ProtobufResponseListener;
  8. use Illuminate\Support\ServiceProvider;
  9. use Illuminate\Support\Facades\Event;
  10. use Illuminate\Support\Facades\Route;
  11. /**
  12. * AppGame模块服务提供者
  13. *
  14. * 负责注册AppGame模块的事件监听器、命令和其他服务
  15. */
  16. class AppGameServiceProvider extends ServiceProvider
  17. {
  18. /**
  19. * 事件到监听器的映射
  20. *
  21. * @var array<class-string, array<int, class-string>>
  22. */
  23. protected $listen = [
  24. ProtobufResponseEvent::class => [
  25. AppGameProtobufResponseListener::class,
  26. GameProtobufResponseListener::class,
  27. ],
  28. ];
  29. /**
  30. * 注册服务
  31. */
  32. public function register(): void
  33. {
  34. // 注册命令或其他服务
  35. }
  36. /**
  37. * 启动服务
  38. */
  39. public function boot(): void
  40. {
  41. // 注册事件监听器
  42. foreach ($this->listen as $event => $listeners) {
  43. foreach ($listeners as $listener) {
  44. Event::listen($event, $listener);
  45. }
  46. }
  47. // 注册中间件
  48. $this->app['router']->aliasMiddleware('login.check', \App\Module\AppGame\Middleware\LoginCheck::class);
  49. // 注册路由
  50. $this->registerRoutes();
  51. }
  52. /**
  53. * 注册模块路由
  54. */
  55. protected function registerRoutes(): void
  56. {
  57. // 注册 Protobuf 路由
  58. Route::post('/gameapi', [ProtobufController::class, 'gameapi']);
  59. }
  60. }