diff --git a/bavarian-rank-engine/includes/Core.php b/bavarian-rank-engine/includes/Core.php new file mode 100644 index 0000000..35664fe --- /dev/null +++ b/bavarian-rank-engine/includes/Core.php @@ -0,0 +1,73 @@ +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/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'; + } + + 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(); + + 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(); + } + } +}