src/includes/Caching/CachingServiceAwareTrait.php
<?php
namespace DeepWebSolutions\Framework\Utilities\Caching;
use DeepWebSolutions\Framework\Foundations\Exceptions\NotFoundException;
\defined( 'ABSPATH' ) || exit;
/**
* Basic implementation of the caching-service-aware interface.
*
* @since 1.0.0
* @version 1.0.0
* @author Antonius Hegyes <a.hegyes@deep-web-solutions.com>
* @package DeepWebSolutions\WP-Framework\Utilities\Caching
*/
trait CachingServiceAwareTrait {
// region FIELDS AND CONSTANTS
/**
* Caching service instance.
*
* @since 1.0.0
* @version 1.0.0
*
* @access protected
* @var CachingService
*/
protected CachingService $caching_service;
// endregion
// region GETTERS
/**
* Gets the current caching service instance set on the object.
*
* @since 1.0.0
* @version 1.0.0
*
* @return CachingService
*/
public function get_caching_service(): CachingService {
return $this->caching_service;
}
// endregion
// region SETTERS
/**
* Sets a caching service instance on the object.
*
* @since 1.0.0
* @version 1.0.0
*
* @param CachingService $service Caching service instance to use from now on.
*/
public function set_caching_service( CachingService $service ) {
$this->caching_service = $service;
}
// endregion
// region METHODS
/**
* Wrapper around the service's own method.
*
* @since 1.0.0
* @version 1.0.0
*
* @param string $key The key under which the cache contents are stored.
* @param string $handler_id ID of the handler to return the value from.
*
* @return mixed|NotFoundException
*/
protected function get_cache_value( string $key, string $handler_id = 'object' ) {
return $this->get_caching_service()->get_value( $key, $handler_id );
}
/**
* Wrapper around the service's own method.
*
* @since 1.0.0
* @version 1.0.0
*
* @param string $key The cache key to use for retrieval later.
* @param mixed $data The contents to store in the cache.
* @param int $expire When to expire the cache contents, in seconds. Default 0 (no expiration).
* @param string $handler_id ID of the handler to set the value with.
*
* @return bool True on success, false on failure.
*/
protected function set_cache_value( string $key, $data, int $expire = 0, string $handler_id = 'object' ): bool {
return $this->get_caching_service()->set_value( $key, $data, $expire, $handler_id );
}
/**
* Wrapper around the service's own method.
*
* @since 1.0.0
* @version 1.0.0
*
* @param string $key The name of the cached value.
* @param string $handler_id ID of the handler to set the value from.
*
* @return bool
*/
protected function delete_cache_value( string $key, string $handler_id = 'object' ): bool {
return $this->get_caching_service()->delete_value( $key, $handler_id );
}
// endregion
}