Yoast\WP\SEO\Schema_Aggregator\Application
Aggregate_Site_Schema_Map_Command_Handler{}
Class that handles the command to aggregate site schema map.
Хуков нет.
Использование
$Aggregate_Site_Schema_Map_Command_Handler = new Aggregate_Site_Schema_Map_Command_Handler(); // use class methods
Методы
- public __construct( Schema_Map_Repository_Factory $schema_map_repository_factory, Schema_Map_Builder $schema_map_builder, Schema_Map_Xml_Renderer $schema_map_xml_renderer, Indexable_Helper $indexable_helper )
- public handle( Aggregate_Site_Schema_Map_Command $command )
Код Aggregate_Site_Schema_Map_Command_Handler{} Aggregate Site Schema Map Command Handler{} Yoast 27.7
class Aggregate_Site_Schema_Map_Command_Handler {
/**
* The schema map factory.
*
* @var Schema_Map_Repository_Factory
*/
private $schema_map_repository_factory;
/**
* The schema map builder.
*
* @var Schema_Map_Builder
*/
private $schema_map_builder;
/**
* The schema map XML renderer.
*
* @var Schema_Map_Xml_Renderer
*/
private $schema_map_xml_renderer;
/**
* The indexable helper.
*
* @var Indexable_Helper
*/
private $indexable_helper;
/**
* Aggregate_Site_Schema_Map_Command_Handler constructor.
*
* @param Schema_Map_Repository_Factory $schema_map_repository_factory The schema map factory.
* @param Schema_Map_Builder $schema_map_builder The schema map builder.
* @param Schema_Map_Xml_Renderer $schema_map_xml_renderer The schema map XML renderer.
* @param Indexable_Helper $indexable_helper The indexable helper.
*/
public function __construct( Schema_Map_Repository_Factory $schema_map_repository_factory, Schema_Map_Builder $schema_map_builder, Schema_Map_Xml_Renderer $schema_map_xml_renderer, Indexable_Helper $indexable_helper ) {
$this->schema_map_repository_factory = $schema_map_repository_factory;
$this->schema_map_builder = $schema_map_builder;
$this->schema_map_xml_renderer = $schema_map_xml_renderer;
$this->indexable_helper = $indexable_helper;
}
/**
* Handles the Aggregate_Site_Schema_Map_Command.
*
* @param Aggregate_Site_Schema_Map_Command $command The command.
*
* @return string The schema map xml.
*/
public function handle( Aggregate_Site_Schema_Map_Command $command ): string {
$schema_map_repository = $this->schema_map_repository_factory->get_repository( $this->indexable_helper->should_index_indexables() );
$indexable_counts = $schema_map_repository->get_indexable_count_per_post_type( $command->get_post_types() );
$schema_map = $this->schema_map_builder
->with_repository( $schema_map_repository )
->build( $indexable_counts );
return $this->schema_map_xml_renderer->render( $schema_map );
}
}