class ProxyCacheFactory extends DefaultCacheFactory (View source)

Allows injection of a psr-6 proxy over an inner cache backend.

You can pass in 'disable-container' to request a raw cache in a case-by-case basis

Properties

protected string $args from  DefaultCacheFactory
protected LoggerInterface $logger from  DefaultCacheFactory
protected string $containerClass

Class name of a psr-16 cache

Methods

public
__construct(array $args = [], LoggerInterface $logger = null)

No description

public
object
create(string $service, array $args = [])

No description

protected
bool
isAPCUSupported()

Determine if apcu is supported

protected
bool
isPHPFilesSupported()

Determine if PHP files is supported

protected
CacheInterface
createCache(string $class, array $args, bool $useInjector = true)

Creates an object with a PSR-16 interface, usually from a PSR-6 class name

Details

__construct(array $args = [], LoggerInterface $logger = null)

No description

Parameters

array $args

List of global options to merge with args during create()

LoggerInterface $logger

Logger instance to assign

object create(string $service, array $args = [])

No description

Parameters

string $service

The class name of the service.

array $args

Return Value

object

The created service instances.

protected bool isAPCUSupported()

Determine if apcu is supported

Return Value

bool

protected bool isPHPFilesSupported()

Determine if PHP files is supported

Return Value

bool

protected CacheInterface createCache(string $class, array $args, bool $useInjector = true)

Creates an object with a PSR-16 interface, usually from a PSR-6 class name

Quick explanation of caching standards:

  • Symfony cache implements the PSR-6 standard
  • Symfony provides adapters which wrap a PSR-6 backend with a PSR-16 interface
  • Silverstripe uses the PSR-16 interface to interact with caches. It does not directly interact with the PSR-6 classes
  • Psr\SimpleCache\CacheInterface is the php interface of the PSR-16 standard. All concrete cache classes Silverstripe code interacts with should implement this interface

Further reading:

Parameters

string $class
array $args
bool $useInjector

Return Value

CacheInterface