| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- <?php
- namespace App\Module\OpenAPI\Services;
- /**
- * Handler注册服务
- *
- * 管理和注册所有OpenAPI Handler
- */
- class HandlerRegistrationService
- {
- /**
- * 注册所有Handler到服务容器
- *
- * @return void
- */
- public function registerHandlers(): void
- {
- // 注册用户相关Handler
- $this->registerUserHandlers();
- // 注册游戏相关Handler
- $this->registerGameHandlers();
- // 注册资金相关Handler
- $this->registerFundHandlers();
- // 注册物品相关Handler(待实现)
- $this->registerItemHandlers();
- // 注册交易相关Handler(待实现)
- $this->registerTradeHandlers();
- }
- /**
- * 注册用户相关Handler
- *
- * @return void
- */
- protected function registerUserHandlers(): void
- {
- $app = app();
- $app->singleton(\App\Module\OpenAPI\Handlers\User\UserInfoHandler::class, function ($app) {
- return new \App\Module\OpenAPI\Handlers\User\UserInfoHandler(
- $app->make(\App\Module\OpenAPI\Services\ScopeService::class)
- );
- });
- $app->singleton(\App\Module\OpenAPI\Handlers\User\UserListHandler::class, function ($app) {
- return new \App\Module\OpenAPI\Handlers\User\UserListHandler(
- $app->make(\App\Module\OpenAPI\Services\ScopeService::class)
- );
- });
- }
- /**
- * 注册游戏相关Handler
- *
- * @return void
- */
- protected function registerGameHandlers(): void
- {
- $app = app();
- $app->singleton(\App\Module\OpenAPI\Handlers\Game\GameStatsHandler::class, function ($app) {
- return new \App\Module\OpenAPI\Handlers\Game\GameStatsHandler(
- $app->make(\App\Module\OpenAPI\Services\ScopeService::class)
- );
- });
- }
- /**
- * 注册资金相关Handler
- *
- * @return void
- */
- protected function registerFundHandlers(): void
- {
- $app = app();
- $app->singleton(\App\Module\OpenAPI\Handlers\Fund\FundBalanceHandler::class, function ($app) {
- return new \App\Module\OpenAPI\Handlers\Fund\FundBalanceHandler(
- $app->make(\App\Module\OpenAPI\Services\ScopeService::class)
- );
- });
- $app->singleton(\App\Module\OpenAPI\Handlers\Fund\DiamondRechargeHandler::class, function ($app) {
- return new \App\Module\OpenAPI\Handlers\Fund\DiamondRechargeHandler(
- $app->make(\App\Module\OpenAPI\Services\ScopeService::class)
- );
- });
- $app->singleton(\App\Module\OpenAPI\Handlers\Fund\DiamondWithdrawHandler::class, function ($app) {
- return new \App\Module\OpenAPI\Handlers\Fund\DiamondWithdrawHandler(
- $app->make(\App\Module\OpenAPI\Services\ScopeService::class)
- );
- });
- }
- /**
- * 注册物品相关Handler(待实现)
- *
- * @return void
- */
- protected function registerItemHandlers(): void
- {
- // TODO: 实现物品相关Handler
- // app()->singleton(\App\Module\OpenAPI\Handlers\Item\ItemListHandler::class, ...);
- }
- /**
- * 注册交易相关Handler(待实现)
- *
- * @return void
- */
- protected function registerTradeHandlers(): void
- {
- // TODO: 实现交易相关Handler
- // app()->singleton(\App\Module\OpenAPI\Handlers\Trade\TradeHistoryHandler::class, ...);
- }
- /**
- * 获取所有已注册的Handler列表
- *
- * @return array
- */
- public function getRegisteredHandlers(): array
- {
- return [
- // 用户相关Handler
- 'user' => [
- 'info' => \App\Module\OpenAPI\Handlers\User\UserInfoHandler::class,
- 'list' => \App\Module\OpenAPI\Handlers\User\UserListHandler::class,
- ],
-
- // 游戏相关Handler
- 'game' => [
- 'stats' => \App\Module\OpenAPI\Handlers\Game\GameStatsHandler::class,
- ],
-
- // 资金相关Handler
- 'fund' => [
- 'balance' => \App\Module\OpenAPI\Handlers\Fund\FundBalanceHandler::class,
- 'diamond_recharge' => \App\Module\OpenAPI\Handlers\Fund\DiamondRechargeHandler::class,
- 'diamond_withdraw' => \App\Module\OpenAPI\Handlers\Fund\DiamondWithdrawHandler::class,
- ],
-
- // 物品相关Handler(待实现)
- 'item' => [
- // 'list' => \App\Module\OpenAPI\Handlers\Item\ItemListHandler::class,
- ],
-
- // 交易相关Handler(待实现)
- 'trade' => [
- // 'history' => \App\Module\OpenAPI\Handlers\Trade\TradeHistoryHandler::class,
- ],
- ];
- }
- /**
- * 检查Handler是否已注册
- *
- * @param string $handlerClass
- * @return bool
- */
- public function isHandlerRegistered(string $handlerClass): bool
- {
- $handlers = $this->getRegisteredHandlers();
-
- foreach ($handlers as $categoryHandlers) {
- if (in_array($handlerClass, $categoryHandlers)) {
- return true;
- }
- }
-
- return false;
- }
- }
|