angelxmoreno / cakephp-simplecache-bridge
A bridge to convert CakePHP Cache to SimpleCache (PSR16)
Requires
- php: ^5.6 || ^7
- cakephp/cache: ^3.6
- psr/simple-cache: ^1.0
Requires (Dev)
- cakephp/cakephp-codesniffer: ^3.0
- codacy/coverage: ^1.4
- codeclimate/php-test-reporter: ^0.4.4
- kahlan/kahlan: ^4.1
- phpmd/phpmd: ^2.6
- squizlabs/php_codesniffer: ^3.3
This package is auto-updated.
Last update: 2024-12-16 09:34:58 UTC
README
A bridge to convert CakePHP Cache to SimpleCache (PSR16)
Why build this?
In a few of my CakePHP apps I make use of 3rd party libraries that require a PSR-16 compatible cache engine. This bridge allows me to reuse the Cache Engines and Cache configs already available within my CakePHP application and eliminates the need of having to build 2 different sets of Cache management libraries.
Isn't this already in CakePHP 3.7 ?
No. CakePHP 3.7 brings with it a PSR-16 CacheEngine; meaning you will be able to decorate a PSR-16 object to implement
Cake\Cache\CacheEngine
methods. What this bridge offers is the ability to go from a Cake\Cache\CacheEngine
to PSR-16, not the other way around.
The new SimpleCacheEngine
class ( in CakePHP 3.7 ) implements PSR 16 interface and decorates/wraps CacheEngine
classes.
Thanks Admad for the clarification.
Examples
Cache::config('short', [ 'className' => 'File', 'duration' => '+1 hours', 'path' => CACHE, 'prefix' => 'cake_short_' ]); $cache = new Bridge('short'); //setting cache data $cache->set('some_key', 'some value'); //getting cache data with a default $value = $cache->get('some_key', 'some default'); //overriding the Cache engine's TTL with an int $cache->set('some_key', 'some value', 300); //cached for 300 seconds instead of `+1 hours` //overriding the Cache engine's TTL with a `\DateTimeInterval` ( as per the SimpleCache Interface ) $interval = new \DateTimeInterval('P1Y'); // an interval of 1 year $cache->set('some_key', 'some value', $interval); //cached for 1 year instead of `+1 hours`
Requirements
- PHP >=5.6
- CakePHP >=3.0
Installation
You can install this library using composer.
The recommended way to install as a composer package:
composer require angelxmoreno/cakephp-simplecache-bridge
Setup
Once you have a cahe configuration defined, you simple have to pass the config name when creating an instance of the Bridge like so:
Cache::config('short', [ 'className' => 'File', 'duration' => '+1 hours', 'path' => CACHE, 'prefix' => 'cake_short_' ]); $cache = new Bridge('short');
Reporting Issues
If you have a problem with this library please open an issue on GitHub.
License
This code is offered under an MIT license.