HandlerRegistrationService.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <?php
  2. namespace App\Module\OpenAPI\Services;
  3. /**
  4. * Handler注册服务
  5. *
  6. * 管理和注册所有OpenAPI Handler
  7. */
  8. class HandlerRegistrationService
  9. {
  10. /**
  11. * 注册所有Handler到服务容器
  12. *
  13. * @return void
  14. */
  15. public function registerHandlers(): void
  16. {
  17. // 注册用户相关Handler
  18. $this->registerUserHandlers();
  19. // 注册游戏相关Handler
  20. $this->registerGameHandlers();
  21. // 注册资金相关Handler
  22. $this->registerFundHandlers();
  23. // 注册物品相关Handler(待实现)
  24. $this->registerItemHandlers();
  25. // 注册交易相关Handler(待实现)
  26. $this->registerTradeHandlers();
  27. }
  28. /**
  29. * 注册用户相关Handler
  30. *
  31. * @return void
  32. */
  33. protected function registerUserHandlers(): void
  34. {
  35. $app = app();
  36. $app->singleton(\App\Module\OpenAPI\Handlers\User\UserInfoHandler::class, function ($app) {
  37. return new \App\Module\OpenAPI\Handlers\User\UserInfoHandler(
  38. $app->make(\App\Module\OpenAPI\Services\ScopeService::class)
  39. );
  40. });
  41. $app->singleton(\App\Module\OpenAPI\Handlers\User\UserListHandler::class, function ($app) {
  42. return new \App\Module\OpenAPI\Handlers\User\UserListHandler(
  43. $app->make(\App\Module\OpenAPI\Services\ScopeService::class)
  44. );
  45. });
  46. }
  47. /**
  48. * 注册游戏相关Handler
  49. *
  50. * @return void
  51. */
  52. protected function registerGameHandlers(): void
  53. {
  54. $app = app();
  55. $app->singleton(\App\Module\OpenAPI\Handlers\Game\GameStatsHandler::class, function ($app) {
  56. return new \App\Module\OpenAPI\Handlers\Game\GameStatsHandler(
  57. $app->make(\App\Module\OpenAPI\Services\ScopeService::class)
  58. );
  59. });
  60. }
  61. /**
  62. * 注册资金相关Handler
  63. *
  64. * @return void
  65. */
  66. protected function registerFundHandlers(): void
  67. {
  68. $app = app();
  69. $app->singleton(\App\Module\OpenAPI\Handlers\Fund\FundBalanceHandler::class, function ($app) {
  70. return new \App\Module\OpenAPI\Handlers\Fund\FundBalanceHandler(
  71. $app->make(\App\Module\OpenAPI\Services\ScopeService::class)
  72. );
  73. });
  74. $app->singleton(\App\Module\OpenAPI\Handlers\Fund\DiamondRechargeHandler::class, function ($app) {
  75. return new \App\Module\OpenAPI\Handlers\Fund\DiamondRechargeHandler(
  76. $app->make(\App\Module\OpenAPI\Services\ScopeService::class)
  77. );
  78. });
  79. $app->singleton(\App\Module\OpenAPI\Handlers\Fund\DiamondWithdrawHandler::class, function ($app) {
  80. return new \App\Module\OpenAPI\Handlers\Fund\DiamondWithdrawHandler(
  81. $app->make(\App\Module\OpenAPI\Services\ScopeService::class)
  82. );
  83. });
  84. }
  85. /**
  86. * 注册物品相关Handler(待实现)
  87. *
  88. * @return void
  89. */
  90. protected function registerItemHandlers(): void
  91. {
  92. // TODO: 实现物品相关Handler
  93. // app()->singleton(\App\Module\OpenAPI\Handlers\Item\ItemListHandler::class, ...);
  94. }
  95. /**
  96. * 注册交易相关Handler(待实现)
  97. *
  98. * @return void
  99. */
  100. protected function registerTradeHandlers(): void
  101. {
  102. // TODO: 实现交易相关Handler
  103. // app()->singleton(\App\Module\OpenAPI\Handlers\Trade\TradeHistoryHandler::class, ...);
  104. }
  105. /**
  106. * 获取所有已注册的Handler列表
  107. *
  108. * @return array
  109. */
  110. public function getRegisteredHandlers(): array
  111. {
  112. return [
  113. // 用户相关Handler
  114. 'user' => [
  115. 'info' => \App\Module\OpenAPI\Handlers\User\UserInfoHandler::class,
  116. 'list' => \App\Module\OpenAPI\Handlers\User\UserListHandler::class,
  117. ],
  118. // 游戏相关Handler
  119. 'game' => [
  120. 'stats' => \App\Module\OpenAPI\Handlers\Game\GameStatsHandler::class,
  121. ],
  122. // 资金相关Handler
  123. 'fund' => [
  124. 'balance' => \App\Module\OpenAPI\Handlers\Fund\FundBalanceHandler::class,
  125. 'diamond_recharge' => \App\Module\OpenAPI\Handlers\Fund\DiamondRechargeHandler::class,
  126. 'diamond_withdraw' => \App\Module\OpenAPI\Handlers\Fund\DiamondWithdrawHandler::class,
  127. ],
  128. // 物品相关Handler(待实现)
  129. 'item' => [
  130. // 'list' => \App\Module\OpenAPI\Handlers\Item\ItemListHandler::class,
  131. ],
  132. // 交易相关Handler(待实现)
  133. 'trade' => [
  134. // 'history' => \App\Module\OpenAPI\Handlers\Trade\TradeHistoryHandler::class,
  135. ],
  136. ];
  137. }
  138. /**
  139. * 检查Handler是否已注册
  140. *
  141. * @param string $handlerClass
  142. * @return bool
  143. */
  144. public function isHandlerRegistered(string $handlerClass): bool
  145. {
  146. $handlers = $this->getRegisteredHandlers();
  147. foreach ($handlers as $categoryHandlers) {
  148. if (in_array($handlerClass, $categoryHandlers)) {
  149. return true;
  150. }
  151. }
  152. return false;
  153. }
  154. }