Yoast\WP\SEO\Schema_Aggregator\Application\Cache
Xml_Manager{} │ Yoast 1.0
Cache manager for the XML sitemap.
Manages cache storage/retrieval/invalidation using WordPress Transients API.
Хуков нет.
Использование
$Xml_Manager = new Xml_Manager();
// use class methods
Методы
- public __construct( Config $config )
- public get()
- public invalidate()
- public set( string $data )
- private get_cache_key()
Код Xml_Manager{} Xml Manager{}
Yoast 27.7
class Xml_Manager {
/**
* Cache key prefix
*
* @var string
*/
private const CACHE_PREFIX = 'yoast_schema_aggregator';
/**
* Cache version for invalidation
*
* @var int
*/
private const CACHE_VERSION = 1;
/**
* Configuration provider
*
* @var Config
*/
private $config;
/**
* Constructor
*
* @param Config $config Configuration provider.
*/
public function __construct( Config $config ) {
$this->config = $config;
}
/**
* Get cached data for a page.
*
* @return string|null Cached data or null.
*/
public function get(): ?string {
try {
if ( ! $this->config->cache_enabled() ) {
return null;
}
$key = $this->get_cache_key();
$data = \get_transient( $key );
if ( $data === false ) {
return null;
}
if ( ! \is_string( $data ) ) {
\delete_transient( $key );
return null;
}
return $data;
} catch ( Exception $e ) {
return null;
}
}
/**
* Set cache data for a page.
*
* @param string $data Data to cache.
*
* @return bool Success.
*/
public function set( string $data ): bool {
try {
$key = $this->get_cache_key();
$expiration = $this->config->get_expiration( [ $data ] );
return \set_transient( $key, $data, $expiration );
} catch ( Exception $e ) {
return false;
}
}
/**
* Invalidate cache for the xml sitemap.
*
* @return bool Success.
*/
public function invalidate(): bool {
return \delete_transient( $this->get_cache_key() );
}
/**
* Generate cache key for page.
*
* @return string Cache key.
*/
private function get_cache_key(): string {
return \sprintf(
'%s_xml_sitemap_v%d',
self::CACHE_PREFIX,
self::CACHE_VERSION,
);
}
}