mehr-it / php-cache
PSR-16 simple cache implementation using PHP files as backend
Installs: 1 271
Dependents: 2
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=7.1
- psr/simple-cache: ^1.0
Requires (Dev)
- cache/integration-tests: dev-master
- phpunit/phpunit: ^7.4|^8.4
This package is auto-updated.
Last update: 2024-10-29 06:12:31 UTC
README
Caching library using PHP files as backend implementing PSR-16.
Introduction
Thanks to opcache, using PHP files as cache backend improves performance as it benefits from PHPs bytecode cache.
This library is aware of opcache and also invalidates opcache whenever a file is changed.
ATTENTION: Since opcache is not shared between different PHP SAPIs, cache data and locks are independent for each SAPI. Even clearing the cache will only invalidate the cache for the current SAPI.
This library uses flock() for locking.
Installation
Use composer:
composer require mehr-it/php-cache
Usage
The constructor of PhpCache
has the following arguments:
new PhpCache(
// The directory to store all cache data and locks
// in. Will be created if not existing.
$baseDir,
// Ensures that all created files have the given
// permission, eg. 0660 (optional)
$filePermission,
// Ensures that all created directories have the
// given permission, eg. 0770 (optional)
$directoryPermission,
// If set to false, keys are not checked to special
// chars according to PSR-16. This improves
// performance.
$strictKeyValidation
)
Locks
In addition to the PSR-16 interface, the cache implements the ability to create named locks:
$cache = new PhpCache('/tmp/cache');
// create a lock
$lock = $cache->lock('my_lock', LOCK_SH);
// change locking mode, if needed
$lock->setMode(LOCK_EX);
// release lock
$lock->release();