| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- namespace App\Module\AppGame\Providers;
- use App\Module\AppGame\Events\LoginSuccessEvent;
- use App\Module\AppGame\Events\ProtobufResponseEvent;
- use App\Module\AppGame\HttpControllers\DemoController;
- use App\Module\AppGame\HttpControllers\JsonController;
- use App\Module\AppGame\HttpControllers\ProtobufController;
- use App\Module\AppGame\Listeners\AppGameProtobufResponseListener;
- use Illuminate\Support\ServiceProvider;
- use Illuminate\Support\Facades\Event;
- use Illuminate\Support\Facades\Route;
- /**
- * AppGame模块服务提供者
- *
- * 负责注册AppGame模块的事件监听器、命令和其他服务
- */
- class AppGameServiceProvider extends ServiceProvider
- {
- /**
- * 事件到监听器的映射
- *
- * @var array<class-string, array<int, class-string>>
- */
- protected $listen = [
- ProtobufResponseEvent::class => [
- AppGameProtobufResponseListener::class
- ],
- LoginSuccessEvent::class => [
- ],
- ];
- /**
- * 注册服务
- */
- public function register(): void
- {
- // 注册命令
- if ($this->app->runningInConsole()) {
- $this->commands([
- \App\Module\AppGame\Commands\TestLogin4uCommand::class,
- \App\Module\AppGame\Commands\TestLogin4ursCommand::class,
- \App\Module\AppGame\Commands\TestUrsResponseConsistencyCommand::class,
- \App\Module\AppGame\Commands\TestBothUrsHandlersCommand::class,
- \App\Module\AppGame\Commands\TestPromotionHandlerCommand::class,
- \App\Module\AppGame\Commands\TestPromotionInfoRefactorCommand::class,
- ]);
- }
- }
- /**
- * 启动服务
- */
- public function boot(): void
- {
- // 注册事件监听器
- foreach ($this->listen as $event => $listeners) {
- foreach ($listeners as $listener) {
- Event::listen($event, $listener);
- }
- }
- // 注册中间件
- $this->app['router']->aliasMiddleware('login.check', \App\Module\AppGame\Middleware\LoginCheck::class);
- // 注册路由
- $this->registerRoutes();
- }
- /**
- * 注册模块路由
- */
- protected function registerRoutes(): void
- {
- // 注册 Protobuf 路由
- Route::post('/gameapi', [ProtobufController::class, 'gameapi']);
- Route::get('/json/{key}.json', [JsonController::class, 'config']);
- }
- }
|