DEPRECATION WARNING
This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.
Cache service¶
Its name speaks for itself: the cache service is an implementation of the TYPO3 caching framework. It will be used to store configuration objects in cache the first time they are created, then fetch the created entry next times. This can improve performances dramatically.
You should really consider before using this service, as it can lead to unwanted behaviours. You should obviously use it only for objects which will be needed several times: do not use it for one-time-run objects, it would create a cache entry for nothing.
Usage¶
You can activate this service for a given configuration object by attaching it to the ServiceFactory
in the static function getConfigurationObjectServices()
. Use the constant ServiceInterface::SERVICE_CACHE
as an identifier for this service (see example below).
Options¶
Name | Description |
---|---|
CacheService::OPTION_CACHE_NAME |
The name of the “group” which will contain all the cache entries for this configuration object. |
CacheService::OPTION_CACHE_BACKEND |
Type of backend cache used for the cache manager. Default is
TYPO3\CMS\...\FileBackend .See TYPO3 official documentation for more information.
|
CacheService::OPTION_CACHE_GROUPS |
Groups of the cache, default value is all . |
CacheService::OPTION_CACHE_OPTIONS |
Actual options of the cache manager. A good example is the option cacheDirectory for
the FileBackend cache. You can find the options of every backend cache in the
TYPO3 official documentation (see above). |
Example¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | use Romm\ConfigurationObject\Service\ServiceInterface;
use Romm\ConfigurationObject\Service\ServiceFactory;
use Romm\ConfigurationObject\Service\Items\Cache\CacheService;
use Romm\ConfigurationObject\ConfigurationObjectInterface;
use Romm\ConfigurationObject\Traits\ConfigurationObject\DefaultConfigurationObjectTrait;
use TYPO3\CMS\Core\Cache\Backend\MemcachedBackend;
class MyObject implements ConfigurationObjectInterface
{
use DefaultConfigurationObjectTrait;
const CACHE_NAME = 'foo_object';
const CACHE_BACKEND = MemcachedBackend::class;
/**
* @var array
*/
private static $cacheOptions = [
'servers' => ['my-server.com:1337'],
'defaultLifetime' => 86400 // 1 day
];
/**
* @return ServiceFactory
*/
public static function getConfigurationObjectServices()
{
return ServiceFactory::getInstance()
->attach(ServiceInterface::SERVICE_CACHE)
->setOption(CacheService::OPTION_CACHE_NAME, self::CACHE_NAME)
->setOption(CacheService::OPTION_CACHE_BACKEND, self::CACHE_BACKEND)
->setOption(CacheService::OPTION_CACHE_OPTIONS, self::$cacheOptions);
}
}
|