container->singleton(ExceptionHandlerInterface::class, function () { return new CustomExceptionHandler(); }); $this->registerTelegramCommands(); $this->registerFacetFilters(); } private function registerTelegramCommands(): void { $this->container->singleton(TelegramCommandsRegistry::class, function () { return new TelegramCommandsRegistry(); }); $registry = $this->container->get(TelegramCommandsRegistry::class); $registry->addCommand('id', ChatIdCommand::class, 'Возвращает ChatID текущего чата.'); $registry->addCommand('link', LinkCommand::class, 'Генератор Telegram сообщений с кнопкой'); $registry->addCommand( 'start', StartCommand::class, 'Базовая команда Telegram бота. Присылает ссылку на открытие Megapay магазина.' ); } private function registerFacetFilters(): void { $this->container->singleton(RulesRegistry::class, function () { return new RulesRegistry(); }); $registry = $this->container->get(RulesRegistry::class); $registry->register([ ProductAttribute::NAME => ProductAttribute::class, ProductCategories::NAME => ProductCategories::class, ProductManufacturer::NAME => ProductManufacturer::class, ProductModel::NAME => ProductModel::class, ProductPrice::NAME => ProductPrice::class, ProductQuantity::NAME => ProductQuantity::class, ProductStatus::NAME => ProductStatus::class, ProductCategory::NAME => ProductCategory::class, ]); } }