aggregate_site_schema_map_command_handler = $aggregate_site_schema_map_command_handler; $this->xml_cache_manager = $xml_cache_manager; $this->aggregator_config = $aggregator_config; } /** * Returns the schema map XML, building and caching it when it is not cached yet. * * @return string The schema map XML. */ public function get_xml(): string { $cached_xml = $this->xml_cache_manager->get(); if ( $cached_xml !== null ) { return $cached_xml; } $command = new Aggregate_Site_Schema_Map_Command( $this->aggregator_config->get_allowed_post_types() ); $xml = $this->aggregate_site_schema_map_command_handler->handle( $command ); $this->xml_cache_manager->set( $xml ); return $xml; } }