$_config
$_config : array
Configuration sets.
Cache provides a consistent interface to Caching in your application. It allows you to use several different Cache engines, without coupling your application to a specific implementation. It also allows you to change out cache storage or configuration without effecting the rest of your application.
You can configure Cache engines in your application's Config/cache.php
file.
A sample configuration would be:
Cache::config('shared', [
'className' => 'Cake\Cache\Engine\ApcuEngine',
'prefix' => 'my_app_'
]);
This would configure an APCu cache engine to the 'shared' alias. You could then read and write
to that cache alias by using it for the $config
parameter in the various Cache methods.
In general all Cache operations are supported by all cache engines. However, Cache::increment() and Cache::decrement() are not supported by File caching.
There are 6 built-in caching engines:
FileEngine
- Uses simple files to store content. Poor performance, but good for
storing large objects, or things that are not IO sensitive. Well suited to development
as it is an easy cache to inspect and manually flush.ApcuEngine
- Uses the APCu object cache, one of the fastest caching engines.MemcacheEngine
- Uses the PECL::Memcache extension and Memcached for storage.
Fast reads/writes, and benefits from memcache being distributed.XcacheEngine
- Uses the Xcache extension, an alternative to APCu.WincacheEngine
- Uses Windows Cache Extension for PHP. Supports wincache 1.1.0 and higher.
This engine is recommended to people deploying on windows with IIS.RedisEngine
- Uses redis and php-redis extension to store cache data.See Cache engine documentation for expected configuration keys.
$_registry : \Cake\Core\ObjectRegistry
Cache Registry used for creating and using cache adapters.
setConfig(string|array $key, array $config = null) : void
This method can be used to define configuration adapters for an application.
To change an adapter's configuration at runtime, first drop the adapter and then reconfigure it.
Adapters will not be constructed until the first operation is done.
Assuming that the class' name is Cache
the following scenarios
are supported:
Setting a cache engine up.
Cache::setConfig('default', $settings);
Injecting a constructed adapter in:
Cache::setConfig('default', $instance);
Configure multiple adapters at once:
Cache::setConfig($arrayOfConfig);
string|array | $key | The name of the configuration, or an array of multiple configs. |
array | $config | An array of name => configuration data for adapter. |
When trying to modify an existing config.
When trying to store an invalid structured config array.
config(string|array $key, array|null $config = null) : array|null
This method can be used to define configuration adapters for an application or read existing configuration.
To change an adapter's configuration at runtime, first drop the adapter and then reconfigure it.
Adapters will not be constructed until the first operation is done.
Assuming that the class' name is Cache
the following scenarios
are supported:
Reading config data back:
Cache::config('default');
Setting a cache engine up.
Cache::config('default', $settings);
Injecting a constructed adapter in:
Cache::config('default', $instance);
Configure multiple adapters at once:
Cache::config($arrayOfConfig);
string|array | $key | The name of the configuration, or an array of multiple configs. |
array|null | $config | An array of name => configuration data for adapter. |
When trying to modify an existing config.
Null when adding configuration or an array of configuration data when reading.
drop(string $config) : boolean
Drops a constructed adapter.
If you wish to modify an existing configuration, you should drop it, change configuration and then re-add it.
If the implementing objects supports a $_registry
object the named configuration
will also be unloaded from the registry.
string | $config | An existing configuration you wish to remove. |
Success of the removal, returns false when the config does not exist.
None found |
configured() : array<mixed,string>
Returns an array containing the named configurations
Array of configurations.
None found |
parseDsn(string $dsn) : array
Parses a DSN into a valid connection configuration
This method allows setting a DSN using formatting similar to that used by PEAR::DB. The following is an example of its usage:
$dsn = 'mysql://user:pass@localhost/database?';
$config = ConnectionManager::parseDsn($dsn);
$dsn = 'Cake\Log\Engine\FileLog://?types=notice,info,debug&file=debug&path=LOGS';
$config = Log::parseDsn($dsn);
$dsn = 'smtp://user:secret@localhost:25?timeout=30&client=null&tls=null';
$config = Email::parseDsn($dsn);
$dsn = 'file:///?className=\My\Cache\Engine\FileEngine';
$config = Cache::parseDsn($dsn);
$dsn = 'File://?prefix=myapp_cake_core_&serialize=true&duration=+2 minutes&path=/tmp/persistent/';
$config = Cache::parseDsn($dsn);
For all classes, the value of scheme
is set as the value of both the className
unless they have been otherwise specified.
Note that querystring arguments are also parsed and set as values in the returned configuration.
string | $dsn | The DSN string to convert to a configuration array |
If not passed a string, or passed an invalid string
The configuration array to be stored after parsing the DSN
None found |
setDsnClassMap(array $map) : void
Updates the DSN class map for this class.
array | $map | Additions/edits to the class map to apply. |
None found |
None found |
dsnClassMap(array|null $map = null) : array
Returns or updates the DSN class map for this class.
array|null | $map | Additions/edits to the class map to apply. |
None found |
getRegistry() : \Cake\Core\ObjectRegistry
Returns the Cache Registry instance used for creating and using cache adapters.
None found |
setRegistry(\Cake\Core\ObjectRegistry $registry) : void
Sets the Cache Registry instance used for creating and using cache adapters.
Also allows for injecting of a new registry instance.
\Cake\Core\ObjectRegistry | $registry | Injectable registry object. |
None found |
registry(\Cake\Core\ObjectRegistry|null $registry = null) : \Cake\Core\ObjectRegistry
Returns the Cache Registry instance used for creating and using cache adapters.
Also allows for injecting of a new registry instance.
\Cake\Core\ObjectRegistry|null | $registry | Injectable registry object. |
None found |
engine(string $config) : \Cake\Cache\CacheEngine
Fetch the engine attached to a specific configuration name.
If the cache engine & configuration are missing an error will be triggered.
string | $config | The configuration name you want an engine for. |
When caching is disabled a null engine will be returned.
None found |
pool(string $config) : \Cake\Cache\SimpleCacheEngine
Get a SimpleCacheEngine object for the named cache pool.
string | $config | The name of the configured cache backend. |
None found |
gc(string $config = 'default', integer|null $expires = null) : void
Garbage collection
Permanently remove all expired and deleted data
string | $config | [optional] The config name you wish to have garbage collected. Defaults to 'default' |
integer|null | $expires | [optional] An expires timestamp. Defaults to NULL |
None found |
write(string $key, mixed $value, string $config = 'default') : boolean
Write data for key into cache.
Writing to the active cache config:
Cache::write('cached_data', $data);
Writing to a specific cache config:
Cache::write('cached_data', $data, 'long_term');
string | $key | Identifier for the data |
mixed | $value | Data to be cached - anything except a resource |
string | $config | Optional string configuration name to write to. Defaults to 'default' |
True if the data was successfully cached, false on failure
None found |
writeMany(array $data, string $config = 'default') : array
Write data for many keys into cache.
Writing to the active cache config:
Cache::writeMany(['cached_data_1' => 'data 1', 'cached_data_2' => 'data 2']);
Writing to a specific cache config:
Cache::writeMany(['cached_data_1' => 'data 1', 'cached_data_2' => 'data 2'], 'long_term');
array | $data | An array of data to be stored in the cache |
string | $config | Optional string configuration name to write to. Defaults to 'default' |
of bools for each key provided, indicating true for success or false for fail
None found |
read(string $key, string $config = 'default') : mixed
Read a key from the cache.
Reading from the active cache configuration.
Cache::read('my_data');
Reading from a specific cache configuration.
Cache::read('my_data', 'long_term');
string | $key | Identifier for the data |
string | $config | optional name of the configuration to use. Defaults to 'default' |
The cached data, or false if the data doesn't exist, has expired, or if there was an error fetching it
None found |
readMany(array $keys, string $config = 'default') : array
Read multiple keys from the cache.
Reading multiple keys from the active cache configuration.
Cache::readMany(['my_data_1', 'my_data_2]);
Reading from a specific cache configuration.
Cache::readMany(['my_data_1', 'my_data_2], 'long_term');
array | $keys | an array of keys to fetch from the cache |
string | $config | optional name of the configuration to use. Defaults to 'default' |
An array containing, for each of the given $keys, the cached data or false if cached data could not be retrieved.
None found |
increment(string $key, integer $offset = 1, string $config = 'default') : mixed
Increment a number under the key and return incremented value.
string | $key | Identifier for the data |
integer | $offset | How much to add |
string | $config | Optional string configuration name. Defaults to 'default' |
new value, or false if the data doesn't exist, is not integer, or if there was an error fetching it.
None found |
decrement(string $key, integer $offset = 1, string $config = 'default') : mixed
Decrement a number under the key and return decremented value.
string | $key | Identifier for the data |
integer | $offset | How much to subtract |
string | $config | Optional string configuration name. Defaults to 'default' |
new value, or false if the data doesn't exist, is not integer, or if there was an error fetching it
None found |
delete(string $key, string $config = 'default') : boolean
Delete a key from the cache.
Deleting from the active cache configuration.
Cache::delete('my_data');
Deleting from a specific cache configuration.
Cache::delete('my_data', 'long_term');
string | $key | Identifier for the data |
string | $config | name of the configuration to use. Defaults to 'default' |
True if the value was successfully deleted, false if it didn't exist or couldn't be removed
None found |
deleteMany(array $keys, string $config = 'default') : array
Delete many keys from the cache.
Deleting multiple keys from the active cache configuration.
Cache::deleteMany(['my_data_1', 'my_data_2']);
Deleting from a specific cache configuration.
Cache::deleteMany(['my_data_1', 'my_data_2], 'long_term');
array | $keys | Array of cache keys to be deleted |
string | $config | name of the configuration to use. Defaults to 'default' |
of boolean values that are true if the value was successfully deleted, false if it didn't exist or couldn't be removed
None found |
clear(boolean $check = false, string $config = 'default') : boolean
Delete all keys from the cache.
boolean | $check | if true will check expiration, otherwise delete all. This parameter will become a no-op value in 4.0 as it is deprecated. |
string | $config | name of the configuration to use. Defaults to 'default' |
True if the cache was successfully cleared, false otherwise
None found |
clearAll(boolean $check = false) : array
Delete all keys from the cache from all configurations.
boolean | $check | if true will check expiration, otherwise delete all. This parameter will become a no-op value in 4.0 as it is deprecated. |
Status code. For each configuration, it reports the status of the operation
None found |
clearGroup(string $group, string $config = 'default') : boolean
Delete all keys from the cache belonging to the same group.
string | $group | name of the group to be cleared |
string | $config | name of the configuration to use. Defaults to 'default' |
True if the cache group was successfully cleared, false otherwise
None found |
groupConfigs(string|null $group = null) : array
Retrieve group names to config mapping.
Cache::config('daily', ['duration' => '1 day', 'groups' => ['posts']]);
Cache::config('weekly', ['duration' => '1 week', 'groups' => ['posts', 'archive']]);
$configs = Cache::groupConfigs('posts');
$configs will equal to ['posts' => ['daily', 'weekly']]
Calling this method will load all the configured engines.
string|null | $group | group name or null to retrieve all group mappings |
map of group and all configuration that has the same group
None found |
enable() : void
Re-enable caching.
If caching has been disabled with Cache::disable() this method will reverse that effect.
None found |
None found |
None found |
remember(string $key, callable $callable, string $config = 'default') : mixed
Provides the ability to easily do read-through caching.
When called if the $key is not set in $config, the $callable function will be invoked. The results will then be stored into the cache config at key.
Examples:
Using a Closure to provide data, assume $this
is a Table object:
$results = Cache::remember('all_articles', function () {
return $this->find('all');
});
string | $key | The cache key to read/store data at. |
callable | $callable | The callable that provides data in the case when the cache key is empty. Can be any callable type supported by your PHP. |
string | $config | The cache configuration to use for this operation. Defaults to default. |
If the key is found: the cached data, false if the data missing/expired, or an error. If the key is not found: boolean of the success of the write
None found |
add(string $key, mixed $value, string $config = 'default') : boolean
Write data for key into a cache engine if it doesn't exist already.
Writing to the active cache config:
Cache::add('cached_data', $data);
Writing to a specific cache config:
Cache::add('cached_data', $data, 'long_term');
string | $key | Identifier for the data. |
mixed | $value | Data to be cached - anything except a resource. |
string | $config | Optional string configuration name to write to. Defaults to 'default'. |
True if the data was successfully cached, false on failure. Or if the key existed already.
None found |
_buildEngine(string $name) : void
Finds and builds the instance of the required engine class.
string | $name | Name of the config array that needs an engine instance built |
When a cache engine cannot be created.
None found |