AppGameServiceProvider.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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\JsonController;
  6. use App\Module\AppGame\HttpControllers\ProtobufController;
  7. use App\Module\AppGame\Listeners\AppGameProtobufResponseListener;
  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. ],
  27. LoginSuccessEvent::class => [
  28. ],
  29. ];
  30. /**
  31. * 注册服务
  32. */
  33. public function register(): void
  34. {
  35. // 注册命令或其他服务
  36. }
  37. /**
  38. * 启动服务
  39. */
  40. public function boot(): void
  41. {
  42. // 注册事件监听器
  43. foreach ($this->listen as $event => $listeners) {
  44. foreach ($listeners as $listener) {
  45. Event::listen($event, $listener);
  46. }
  47. }
  48. // 注册中间件
  49. $this->app['router']->aliasMiddleware('login.check', \App\Module\AppGame\Middleware\LoginCheck::class);
  50. // 注册路由
  51. $this->registerRoutes();
  52. }
  53. /**
  54. * 注册模块路由
  55. */
  56. protected function registerRoutes(): void
  57. {
  58. // 注册 Protobuf 路由
  59. Route::post('/gameapi', [ProtobufController::class, 'gameapi']);
  60. Route::get('/json/{key}.json', [JsonController::class, 'config']);
  61. }
  62. }