register(); ( new MetaFieldsRegistrar() )->register(); ( new TermMetaFieldsRegistrar() )->register(); $settings_repository = new SettingsRepository(); $location_rules_repository = new LocationRulesRepository(); $archive_settings_repository = new ArchiveSettingsRepository(); $post_meta_repository = new PostMetaRepository(); $term_meta_repository = new TermMetaRepository(); $resolver = new MetaResolver( $post_meta_repository, $settings_repository ); $location_evaluator = new LocationRuleEvaluator( $settings_repository, $location_rules_repository ); $features_repository = new FeaturesRepository(); ( new MetaTagsProvider( $resolver, $location_evaluator, $features_repository, $global_settings_repository ) )->register(); ( new ConflictNotice() )->register(); ( new ConflictOverrideRunner( $global_settings_repository ) )->register(); $graph_builder = new SchemaGraphBuilder( new SchemaRegistry( $resolver, $global_settings_repository, $settings_repository, $post_meta_repository ), $post_meta_repository ); ( new SchemaOutput( $graph_builder, $location_evaluator, $features_repository ) )->register(); ( new SchemaExportController( $graph_builder ) )->register(); $robots_txt_repository = new RobotsTxtRepository(); $ai_settings_repository = new AiSettingsRepository(); $ai_provider_registry = new AiProviderRegistry( $ai_settings_repository ); $ai_generation_service = new AiGenerationService( $ai_provider_registry, $ai_settings_repository ); $integrations_repository = new IntegrationsRepository(); $importer_registry = new ImporterRegistry( $post_meta_repository, $term_meta_repository ); $license_repository = new LicenseRepository(); $ai_bots_repository = new AiBotsRepository(); $onboarding_repository = new OnboardingRepository(); $sitemap_repository = new \AcezSeo\Data\SitemapRepository(); ( new SettingsPage( $settings_repository, $global_settings_repository, $location_rules_repository, $archive_settings_repository, $robots_txt_repository, $ai_settings_repository, $ai_provider_registry, $integrations_repository, $importer_registry, $features_repository, $license_repository, $onboarding_repository, $ai_bots_repository, $sitemap_repository ) )->register(); $llms_builder = new LlmsTxtBuilder( $global_settings_repository, $resolver ); ( new LlmsTxtProvider( $ai_bots_repository, $llms_builder, $global_settings_repository ) )->register(); // Supplies the prompts for the llms.txt AI buttons through the shared // `acez_seo_ai_prompt` filter (site-level fields, no post involved). ( new LlmsAiPrompt( $llms_builder ) )->register(); ( new LlmsSitemapProvider( $ai_bots_repository, $global_settings_repository ) )->register(); ( new NoAiTag( $ai_bots_repository ) )->register(); ( new IntegrationsOutput( $integrations_repository ) )->register(); ( new HreflangOutput() )->register(); ( new HideFromSearch( $global_settings_repository ) )->register(); ( new AiRestController( $ai_generation_service, $ai_settings_repository, $features_repository ) )->register(); ( new \AcezSeo\Analysis\LiteRestController() )->register(); ( new ClassicMetaBox( $post_meta_repository, $graph_builder, new SchemaValidator(), $features_repository ) )->register(); ( new GutenbergSidebarAssets( $features_repository ) )->register(); ( new MediaLibraryAiAssets( $features_repository ) )->register(); ( new HelpTabProvider() )->register(); ( new TermSeoFields( $term_meta_repository ) )->register(); ( new UserProfileFields() )->register(); $archive_graph = new ArchiveGraph( new OrganizationSchemaType( $global_settings_repository ) ); ( new TermMetaTagsProvider( $term_meta_repository, $archive_settings_repository, $features_repository ) )->register(); ( new TermSchemaOutput( $term_meta_repository, $archive_settings_repository, $features_repository, $archive_graph ) )->register(); // The blog index ("latest posts" front page / "Posts page") is never // singular, so MetaTagsProvider and SchemaOutput skip it (M77). $blog_index_resolver = new BlogIndexResolver( $resolver, $location_evaluator ); ( new BlogIndexMetaTagsProvider( $blog_index_resolver, $features_repository ) )->register(); ( new BlogIndexSchemaOutput( $blog_index_resolver, $features_repository, $archive_graph ) )->register(); ( new CacheInvalidator() )->register(); ( new SitemapExclusion( $resolver, $archive_settings_repository ) )->register(); ( new SitemapImageTags() )->register(); ( new \AcezSeo\Sitemap\SitemapSettings( $sitemap_repository ) )->register(); ( new \AcezSeo\Sitemap\CustomUrlsSitemapProvider( $sitemap_repository ) )->register(); ( new BreadcrumbsShortcode( $features_repository ) )->register(); ( new AltTextFallback( $features_repository ) )->register(); ( new RelLinksOutput( $features_repository ) )->register(); ( new RssBacklink( $features_repository ) )->register(); ( new SitemapToggle( $features_repository ) )->register(); ( new NoCategoryBase( $global_settings_repository ) )->register(); ( new RobotsTxtProvider( $robots_txt_repository ) )->register(); } }