popphp / pop-cache
Pop Cache Component for Pop PHP Framework
Installs: 4 475
Dependents: 1
Suggesters: 0
Security: 0
Stars: 6
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: >=8.1.0
- popphp/pop-db: ^6.5.0
Requires (Dev)
- phpunit/phpunit: ^10.0.0
README
Overview
pop-cache
provides the ability to cache frequently accessed content via several different adapters.
The adapters all share the same interface and are interchangeable. Depending on the server environment
and what's available, an application can use one of the following cache adapters:
- Apc (caching service)
- Memcached (caching service)
- Redis (caching service)
- File (directory on disk)
- Database (database caching)
- Session (short-term caching in session)
pop-cache
is a component of the Pop PHP Framework.
Install
Install pop-cache
using Composer.
composer require popphp/pop-cache
Or, require it in your composer.json file
"require": {
"popphp/pop-cache" : "^4.0.0"
}
Quickstart
Here is a basic example to create a cache object and then save and retrieve some data from it.
The adapter can be passed a "time-to-live" value in seconds (TTL). If set to 0
, then the cached
items will never expire:
use Pop\Cache\Cache; use Pop\Cache\Adapter\File; // Passing the file adapter the location on disk and the TTL $cache = new Cache(new Adapter\File('/path/to/my/cache/dir', 300)); $cache->saveItem('foo', $data); $data = $cache->getItem('foo');
Check if the cache has an item
if $cache->hasItem('foo') { } // Return bool
Delete item
$cache->deleteItem('foo');
Delete items
$cache->deleteItems(['foo', 'bar']);
Clear all items out of the cache
$cache->clear();
APC
Using the APC adapter requires APC to be correctly set up in the environment.
use Pop\Cache\Cache; use Pop\Cache\Adapter\Apc; $cache = new Cache(new Apc(300));
Memcached
Using the Memcached adapter requires Memcached to be correctly set up in the environment.
use Pop\Cache\Cache; use Pop\Cache\Adapter\Memcached; $cache = new Cache(new Memcached(300, 'localhost', 11211));
Redis
Using the Redis adapter requires Redis to be correctly set up in the environment.
use Pop\Cache\Cache; use Pop\Cache\Adapter\Redis; $cache = new Cache(new Redis(300, 'localhost', 6379));
File
Using the file adapter will simply store the cache data on the local disk.
use Pop\Cache\Cache; use Pop\Cache\Adapter\File; $cache = new Cache(new Adapter\File('/path/to/my/cache/dir', 300));
Database
Using the database adapter will require the database to be set up correctly and the use of
the pop-db
component.
use Pop\Cache\Cache; use Pop\Cache\Adapter\Database; use Pop\Db\Db; $cache = new Cache( new Database(Db::sqliteConnect(['database' => __DIR__ . '/tmp/cache.sqlite']), 300) );
Session
Using the session adapter will store the cached data in session
use Pop\Cache\Cache; use Pop\Cache\Adapter\Session; $cache = new Cache(new Session(300));