class ManifestCacheFactory extends DefaultCacheFactory (View source)

Assists with building of manifest cache prior to config being available

Properties

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

Methods

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

No description

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

Note: While the returned object is used as a singleton (by the originating Injector->get() call), this cache object shouldn't be a singleton itself - it has varying constructor args for the same service name.

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 $params = [])

Note: While the returned object is used as a singleton (by the originating Injector->get() call), this cache object shouldn't be a singleton itself - it has varying constructor args for the same service name.

Parameters

string $service

The class name of the service.

array $params

The constructor parameters.

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