registerCommands(); $this->registerValidates(); $this->registerMiddleWares(); $this->registerEvents(); $this->registerQuery(); $this->registerExceptionHandle(); } /** * * @time 2019年12月13日 * @return void */ protected function registerCommands(): void { $this->commands([ InstallProjectCommand::class, ModuleCacheCommand::class, MigrateRunCommand::class, ModelGeneratorCommand::class, SeedRunCommand::class, BackupCommand::class, CompressPackageCommand::class, CreateModuleCommand::class, MigrateRollbackCommand::class, MigrateCreateCommand::class, WsWorkerCommand::class, ExportDataCommand::class, MakeMenuCommand::class, ]); } /** * * @time 2019年12月07日 * @return void */ protected function registerValidates(): void { $validates = config('catch.validates'); Validate::maker(function($validate) use ($validates) { foreach ($validates as $vali) { $vali = app()->make($vali); $validate->extend($vali->type(), [$vali, 'verify'], $vali->message()); } }); } /** * * @time 2019年12月12日 * @return void */ protected function registerMiddleWares(): void { // todo } /** * 注册监听者 * * @time 2019年12月12日 * @return void */ protected function registerEvents(): void { $this->app->event->listenEvents(config('catch.events')); } /** * register query * * @time 2020年02月20日 * @return void */ protected function registerQuery(): void { $connections = $this->app->config->get('database.connections'); $connections['mysql']['query'] = CatchQuery::class; $this->app->config->set([ 'connections' => $connections ], 'database'); } /** * register exception * * @time 2020年02月20日 * @return void */ protected function registerExceptionHandle(): void { $this->app->bind(Handle::class, CatchExceptionHandle::class); } }