Fr3nch13/CakePHP Utilities

CacheRegistry extends ObjectRegistry
in package

An object registry for cache engines.

Used by to load and manage cache engines.

Tags
extends

\Cake\Core\ObjectRegistry<\Cake\Cache\CacheEngine>

Table of Contents

Properties

$_loaded  : array<string|int, object>
Map of loaded objects.

Methods

__debugInfo()  : array<string, mixed>
Debug friendly object properties.
__get()  : object|null
Provide public read access to the loaded objects
__isset()  : bool
Provide isset access to _loaded
__set()  : void
Sets an object.
__unset()  : void
Unsets an object.
count()  : int
Returns the number of loaded objects.
get()  : object
Get loaded object instance.
getIterator()  : Traversable
Returns an array iterator.
has()  : bool
Check whether a given object is loaded.
load()  : mixed
Loads/constructs an object instance.
loaded()  : array<string|int, string>
Get the list of loaded objects.
normalizeArray()  : array<string, array<string|int, mixed>>
Normalizes an object array, creates an array that makes lazy loading easier
reset()  : $this
Clear loaded instances in the registry.
set()  : $this
Set an object directly into the registry by name.
unload()  : $this
Remove a single adapter from the registry.
_checkDuplicate()  : void
Check for duplicate object loading.
_create()  : CacheEngine
Create the cache engine instance.
_resolveClassName()  : string|null
Resolve a cache engine classname.
_throwMissingClassError()  : void
Throws an exception when a cache engine is missing.

Properties

$_loaded

Map of loaded objects.

protected array<string|int, object> $_loaded = []
Tags
psalm-var

array<array-key, TObject>

Methods

__debugInfo()

Debug friendly object properties.

public __debugInfo() : array<string, mixed>
Return values
array<string, mixed>

__get()

Provide public read access to the loaded objects

public __get(string $name) : object|null
Parameters
$name : string

Name of property to read

Tags
psalm-return

TObject|null

Return values
object|null

__isset()

Provide isset access to _loaded

public __isset(string $name) : bool
Parameters
$name : string

Name of object being checked.

Return values
bool

__set()

Sets an object.

public __set(string $name, object $object) : void
Parameters
$name : string

Name of a property to set.

$object : object

Object to set.

Tags
psalm-param

TObject $object

__unset()

Unsets an object.

public __unset(string $name) : void
Parameters
$name : string

Name of a property to unset.

count()

Returns the number of loaded objects.

public count() : int
Return values
int

get()

Get loaded object instance.

public get(string $name) : object
Parameters
$name : string

Name of object.

Tags
throws
RuntimeException

If not loaded or found.

psalm-return

TObject

Return values
object

Object instance.

getIterator()

Returns an array iterator.

public getIterator() : Traversable
Tags
psalm-return

\Traversable<string, TObject>

Return values
Traversable

has()

Check whether a given object is loaded.

public has(string $name) : bool
Parameters
$name : string

The object name to check for.

Return values
bool

True is object is loaded else false.

load()

Loads/constructs an object instance.

public load(string $name[, array<string, mixed> $config = [] ]) : mixed

Will return the instance in the registry if it already exists. If a subclass provides event support, you can use $config['enabled'] = false to exclude constructed objects from being registered for events.

Using as an example. You can alias an object by setting the 'className' key, i.e.,

protected $components = [
  'Email' => [
    'className' => 'App\Controller\Component\AliasedEmailComponent'
  ];
];

All calls to the Email component would use AliasedEmail instead.

Parameters
$name : string

The name/class of the object to load.

$config : array<string, mixed> = []

Additional settings to use when loading the object.

Tags
psalm-return

TObject

throws
Exception

If the class cannot be found.

loaded()

Get the list of loaded objects.

public loaded() : array<string|int, string>
Return values
array<string|int, string>

List of object names.

normalizeArray()

Normalizes an object array, creates an array that makes lazy loading easier

public normalizeArray(array<string|int, mixed> $objects) : array<string, array<string|int, mixed>>
Parameters
$objects : array<string|int, mixed>

Array of child objects to normalize.

Return values
array<string, array<string|int, mixed>>

Array of normalized objects.

reset()

Clear loaded instances in the registry.

public reset() : $this

If the registry subclass has an event manager, the objects will be detached from events as well.

Return values
$this

set()

Set an object directly into the registry by name.

public set(string $name, object $object) : $this

If this collection implements events, the passed object will be attached into the event manager

Parameters
$name : string

The name of the object to set in the registry.

$object : object

instance to store in the registry

Tags
psalm-param

TObject $object

psalm-suppress

MoreSpecificReturnType

Return values
$this

unload()

Remove a single adapter from the registry.

public unload(string $name) : $this
Parameters
$name : string

The adapter name.

Return values
$this

_checkDuplicate()

Check for duplicate object loading.

protected _checkDuplicate(string $name, array<string, mixed> $config) : void

If a duplicate is being loaded and has different configuration, that is bad and an exception will be raised.

An exception is raised, as replacing the object will not update any references other objects may have. Additionally, simply updating the runtime configuration is not a good option as we may be missing important constructor logic dependent on the configuration.

Parameters
$name : string

The name of the alias in the registry.

$config : array<string, mixed>

The config data for the new instance.

Tags
throws
RuntimeException

When a duplicate is found.

_create()

Create the cache engine instance.

protected _create(CacheEngine|string $class, string $alias, array<string, mixed> $config) : CacheEngine

Part of the template method for Cake\Core\ObjectRegistry::load()

Parameters
$class : CacheEngine|string

The classname or object to make.

$alias : string

The alias of the object.

$config : array<string, mixed>

An array of settings to use for the cache engine.

Tags
throws
RuntimeException

when an object doesn't implement the correct interface.

Return values
CacheEngine

The constructed CacheEngine class.

_resolveClassName()

Resolve a cache engine classname.

protected _resolveClassName(string $class) : string|null

Part of the template method for Cake\Core\ObjectRegistry::load()

Parameters
$class : string

Partial classname to resolve.

Tags
psalm-return

class-string|null

Return values
string|null

Either the correct classname or null.

_throwMissingClassError()

Throws an exception when a cache engine is missing.

protected _throwMissingClassError(string $class, string|null $plugin) : void

Part of the template method for Cake\Core\ObjectRegistry::load()

Parameters
$class : string

The classname that is missing.

$plugin : string|null

The plugin the cache is missing in.

Tags
throws
BadMethodCallException

        
On this page

Search results