load_dependencies(); $this->register_hooks(); } private function load_dependencies(): void { require_once BRE_DIR . 'includes/Providers/ProviderInterface.php'; require_once BRE_DIR . 'includes/Providers/ProviderRegistry.php'; require_once BRE_DIR . 'includes/Providers/OpenAIProvider.php'; require_once BRE_DIR . 'includes/Providers/AnthropicProvider.php'; require_once BRE_DIR . 'includes/Providers/GeminiProvider.php'; require_once BRE_DIR . 'includes/Providers/GrokProvider.php'; require_once BRE_DIR . 'includes/Helpers/KeyVault.php'; require_once BRE_DIR . 'includes/Helpers/TokenEstimator.php'; require_once BRE_DIR . 'includes/Helpers/FallbackMeta.php'; require_once BRE_DIR . 'includes/Helpers/BulkQueue.php'; require_once BRE_DIR . 'includes/Features/MetaGenerator.php'; require_once BRE_DIR . 'includes/Features/SchemaEnhancer.php'; require_once BRE_DIR . 'includes/Features/LlmsTxt.php'; require_once BRE_DIR . 'includes/Features/RobotsTxt.php'; require_once BRE_DIR . 'includes/Features/CrawlerLog.php'; require_once BRE_DIR . 'includes/Features/GeoBlock.php'; require_once BRE_DIR . 'includes/Admin/SettingsPage.php'; require_once BRE_DIR . 'includes/Admin/AdminMenu.php'; require_once BRE_DIR . 'includes/Admin/ProviderPage.php'; require_once BRE_DIR . 'includes/Admin/MetaPage.php'; require_once BRE_DIR . 'includes/Admin/BulkPage.php'; require_once BRE_DIR . 'includes/Admin/LlmsPage.php'; require_once BRE_DIR . 'includes/Admin/MetaEditorBox.php'; require_once BRE_DIR . 'includes/Admin/SeoWidget.php'; require_once BRE_DIR . 'includes/Admin/LinkAnalysis.php'; require_once BRE_DIR . 'includes/Admin/RobotsPage.php'; require_once BRE_DIR . 'includes/Admin/GeoPage.php'; require_once BRE_DIR . 'includes/Admin/GeoEditorBox.php'; } private function register_hooks(): void { $registry = ProviderRegistry::instance(); $registry->register( new Providers\OpenAIProvider() ); $registry->register( new Providers\AnthropicProvider() ); $registry->register( new Providers\GeminiProvider() ); $registry->register( new Providers\GrokProvider() ); ( new Features\MetaGenerator() )->register(); ( new Features\SchemaEnhancer() )->register(); ( new Features\LlmsTxt() )->register(); ( new Features\RobotsTxt() )->register(); ( new Features\CrawlerLog() )->register(); ( new Features\GeoBlock() )->register(); if ( is_admin() ) { $menu = new Admin\AdminMenu(); $menu->register(); ( new Admin\ProviderPage() )->register(); ( new Admin\MetaPage() )->register(); ( new Admin\BulkPage() )->register(); ( new Admin\LlmsPage() )->register(); ( new Admin\MetaEditorBox() )->register(); ( new Admin\SeoWidget() )->register(); ( new Admin\LinkAnalysis() )->register(); ( new Admin\RobotsPage() )->register(); ( new Admin\GeoPage() )->register(); ( new Admin\GeoEditorBox() )->register(); } } }