Yoast\WP\SEO\Task_List\Infrastructure\Tasks_Collectors

Cached_Tasks_Collector{}Yoast 1.0└─ Tasks_Collector_Interface

Manages the cached collection of tasks.

Хуков нет.

Использование

$Cached_Tasks_Collector = new Cached_Tasks_Collector();
// use class methods

Методы

  1. public __construct( Tasks_Collector $tasks_collector )
  2. public get_tasks_data()

Код Cached_Tasks_Collector{} Yoast 27.7

class Cached_Tasks_Collector implements Tasks_Collector_Interface {

	public const TASKS_TRANSIENT = 'wpseo_task_list_tasks';

	/**
	 * Holds the tasks collector.
	 *
	 * @var Tasks_Collector
	 */
	private $tasks_collector;

	/**
	 * Constructs the cached collector.
	 *
	 * @param Tasks_Collector $tasks_collector The tasks collector.
	 */
	public function __construct( Tasks_Collector $tasks_collector ) {
		$this->tasks_collector = $tasks_collector;
	}

	/**
	 * Gets the tasks data.
	 *
	 * @TODO: Maybe this can be improved at some point by caching only the is_completed info instead of all the task data.
	 *
	 * @return array<string, array<string, string|bool>> The tasks data.
	 */
	public function get_tasks_data(): array {
		$cached_tasks_data = \get_transient( self::TASKS_TRANSIENT );

		if ( $cached_tasks_data !== false ) {
			return \json_decode( $cached_tasks_data, true );
		}

		$tasks_data = $this->tasks_collector->get_tasks_data();
		\set_transient( self::TASKS_TRANSIENT, WPSEO_Utils::format_json_encode( $tasks_data ), \MINUTE_IN_SECONDS );

		return $tasks_data;
	}
}