AppGameServiceProvider.php 2.4 KB

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