fyre / cache
A cache library.
Requires
- fyre/config: ^4.0
- fyre/container: ^1.0
- fyre/filesystem: ^2.0
- fyre/path: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.59
- fyre/php-cs-fixer-config: ^1.0
- phpunit/phpunit: ^11
- dev-main
- v5.1.0
- v5.0.2
- v5.0.1
- v5.0
- v4.0.2
- v4.0.1
- v4.0
- v3.0.11
- v3.0.10
- v3.0.9
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0
- v2.0.1
- v2.0
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.13
- v1.0.12
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0
This package is auto-updated.
Last update: 2024-12-17 00:57:26 UTC
README
FyreCache is a free, open-source cache library for PHP.
Table Of Contents
Installation
Using Composer
composer require fyre/cache
In PHP:
use Fyre\Cache\CacheManager;
Basic Usage
$cacheManager = new CacheManager($container);
Default configuration options will be resolved from the "Cache" key in the Config.
The cache will be disabled by default if the `"App.debug" key is set in the Config.
Autoloading
It is recommended to bind the CacheManager to the Container as a singleton.
$container->singleton(CacheManager::class);
Any dependencies will be injected automatically when loading from the Container.
$cacheManager = $container->use(CacheManager::class);
Methods
Build
Build a Cacher.
$options
is an array containing configuration options.
$cacher = $cacheManager->build($options);
Cacher dependencies will be resolved automatically from the Container.
Clear
Clear all instances and configs.
$cacheManager->clear();
Disable
Disable the cache.
$cacheManager->disable();
If the cache is disabled, the use
method will always return a NullCacher.
Enable
Enable the cache.
$cacheManager->enable();
Get Config
Get a Cacher config.
$key
is a string representing the Cacher key.
$config = $cacheManager->getConfig($key);
Alternatively, if the $key
argument is omitted an array containing all configurations will be returned.
$config = $cacheManager->getConfig();
Has Config
Determine whether a Cacher config exists.
$key
is a string representing the Cacher key, and will default toCacheManager::DEFAULT
.
$hasConfig = $cacheManager->hasConfig($key);
Is Enabled
Determine whether the cache is enabled.
$cacheManager->isEnabled();
Is Loaded
Determine whether a Cacher instance is loaded.
$key
is a string representing the Cacher key, and will default toCacheManager::DEFAULT
.
$isLoaded = $cacheManager->isLoaded($key);
Set Config
Set the Cacher config.
$key
is a string representing the Cacher key.$options
is an array containing configuration options.
$cacheManager->setConfig($key, $options);
Unload
Unload a Cacher.
$key
is a string representing the Cacher key, and will default toCacheManager::DEFAULT
.
$cacheManager->unload($key);
Use
Load a shared Cacher instance.
$key
is a string representing the Cacher key, and will default toCacheManager::DEFAULT
.
$cacher = $cacheManager->use($key);
Cacher dependencies will be resolved automatically from the Container.
Cachers
You can load a specific cacher by specifying the className
option of the $options
variable above.
Custom cachers can be created by extending \Fyre\Cache\Cacher
, ensuring all below methods are implemented.
Decrement
Decrement a cache value.
$key
is a string representing the cache key.$amount
is a number indicating the amount to decrement by, and will default to 1.
$value = $cacher->decrement($key, $amount);
Delete
Delete an item from the cache.
$key
is a string representing the cache key.
$deleted = $cacher->delete($key);
Empty
Empty the cache.
$emptied = $cacher->empty();
Get
Retrieve a value from the cache.
$key
is a string representing the cache key.
$value = $cacher->get($key);
Has
Determine whether an item exists in the cache.
$key
is a string representing the cache key.
$has = $cacher->has($key);
Increment
Increment a cache value.
$key
is a string representing the cache key.$amount
is a number indicating the amount to increment by, and will default to 1.
$value = $cacher->increment($key, $amount);
Remember
Retrieve an item from the cache, or save a new value if it doesn't exist.
$key
is a string representing the cache key.$callback
is the callback method to generate the value.$expire
is a number indicating the number of seconds the value will be valid, and will default to null.
$value = $cacher->remember($key, $callback, $expire);
Save
Save an item in the cache.
$key
is a string representing the cache key.$value
is the value to save in the cache.$expire
is a number indicating the number of seconds the value will be valid, and will default to null.
$saved = $cacher->save($key, $value, $expire);
Size
Get the size of the cache.
$size = $cacher->size();
File
The File cacher can be loaded using custom configuration.
$options
is an array containing configuration options.className
must be set to\Fyre\Cache\Handlers\FileCacher
.expire
is a number indicating the default cache timeout.prefix
is a string representing the cache key prefix.path
is a string representing the directory path, and will default to "/tmp/cache".mode
is a number indicating the cache file permissions, and will default to 0640.
$container->use(Config::class)->set('Cache.file', $options);
Memcached
The Memcached cacher can be loaded using custom configuration.
$options
is an array containing configuration options.className
must be set to\Fyre\Cache\Handlers\MemcachedCacher
.expire
is a number indicating the default cache timeout.prefix
is a string representing the cache key prefix.host
is a string representing the Memcached host, and will default to "127.0.0.1".port
is a number indicating the Memcached port, and will default to 11211.weight
is a number indicating the server weight, and will default to 1.
$container->use(Config::class)->set('Cache.memcached', $options);
Redis
The Redis cacher can be loaded using custom configuration.
$options
is an array containing configuration options.className
must be set to\Fyre\Cache\Handlers\RedisCacher
.expire
is a number indicating the default cache timeout.prefix
is a string representing the cache key prefix.host
is a string representing the Redis host, and will default to "127.0.0.1".password
is a string representing the Redis password.port
is a number indicating the Redis port, and will default to 6379.database
is a string representing the Redis database.timeout
is a number indicating the connection timeout.
$container->use(Config::class)->set('Cache.redis', $options);