voku/simple-cache
最新稳定版本:5.0.0
Composer 安装命令:
composer require voku/simple-cache
包简介
Simple Cache library
README 文档
README
⚡ Simple Cache Class
This is a simple Cache Abstraction Layer for PHP >= 7.0 that provides a simple interaction with your cache-server. You can define the Adapter / Serializer in the "constructor" or the class will auto-detect you server-cache in this order:
- Memcached / Memcache
- Redis
- Xcache
- APC / APCu
- OpCache (via PHP-files)
- Static-PHP-Cache
Get "Simple Cache"
You can download it from here, or require it using composer.
{
"require": {
"voku/simple-cache": "5.*"
}
}
Install via "composer require"
composer require voku/simple-cache
Quick Start
use voku\cache\Cache; require_once 'composer/autoload.php'; $cache = new Cache(); $ttl = 3600; // 60s * 60 = 1h $cache->setItem('foo', 'bar', $ttl); $bar = $cache->getItem('foo');
Usage
use voku\cache\Cache; $cache = new Cache(); if ($cache->getCacheIsReady() === true && $cache->existsItem('foo')) { return $cache->getItem('foo'); } else { $bar = someSpecialFunctionsWithAReturnValue(); $cache->setItem('foo', $bar); return $bar; }
If you have an heavy task e.g. a really-big-loop, then you can also use static-cache. But keep in mind, that this will be stored into PHP (it needs more memory).
use voku\cache\Cache; $cache = new Cache(); if ($cache->getCacheIsReady() === true && $cache->existsItem('foo')) { for ($i = 0; $i <= 100000; $i++) { echo $this->cache->getItem('foo', 3); // use also static-php-cache, when we hit the cache 3-times } return $cache->getItem('foo'); } else { $bar = someSpecialFunctionsWithAReturnValue(); $cache->setItem('foo', $bar); return $bar; }
PS: By default, the static cache is also used by >= 10 cache hits. But you can configure this behavior via $cache->setStaticCacheHitCounter(INT).
No-Cache for the admin or a specific ip-address
If you use the parameter "$checkForUser" (=== true) in the constructor, then the cache isn't used for the admin-session.
-> You can also overwrite the check for the user, if you add a global function named "checkForDev()".
Overwrite the auto-connection option
You can overwrite the cache auto-detect via "CacheAdapterAutoManager" and the "$cacheAdapterManagerForAutoConnect" option in the "Cache"-constructor. Additional you can also activate the "$cacheAdapterManagerForAutoConnectOverwrite" option in the "Cache"-constructor, so that you can implement your own cache auto-detect logic.
$cacheManager = new \voku\cache\CacheAdapterAutoManager(); // 1. check for "APCu" support first $cacheManager->addAdapter( \voku\cache\AdapterApcu::class ); // 2. check for "APC" support $cacheManager->addAdapter( \voku\cache\AdapterApcu::class ); // 3. try "OpCache"-Cache $cacheManager->addAdapter( \voku\cache\AdapterOpCache::class, static function () { $cacheDir = \realpath(\sys_get_temp_dir()) . '/simple_php_cache_opcache'; return $cacheDir; } ); // 4. try "File"-Cache $cacheManager->addAdapter( \voku\cache\AdapterFileSimple::class, static function () { $cacheDir = \realpath(\sys_get_temp_dir()) . '/simple_php_cache_file'; return $cacheDir; } ); // 5. use Memory Cache as final fallback $cacheManager->addAdapter( \voku\cache\AdapterArray::class ); $cache = new \voku\cache\CachePsr16( null, // use auto-detection null, // use auto-detection false, // do not check for usage true, // enable the cache false, // do not check for admin session false, // do not check for dev false, // do not check for admin session false, // do not check for server vs. client ip '', // do not use "_GET"-parameter for disabling $cacheManager, // new auto-detection logic true // overwrite the auto-detection logic );
Support
For support and donations please visit Github | Issues | PayPal | Patreon.
For status updates and release announcements please visit Releases | Twitter | Patreon.
For professional support please contact me.
Thanks
- Thanks to GitHub (Microsoft) for hosting the code and a good infrastructure including Issues-Managment, etc.
- Thanks to IntelliJ as they make the best IDEs for PHP and they gave me an open source license for PhpStorm!
- Thanks to Travis CI for being the most awesome, easiest continous integration tool out there!
- Thanks to StyleCI for the simple but powerfull code style check.
- Thanks to PHPStan && Psalm for relly great Static analysis tools and for discover bugs in the code!
License
统计信息
- 总下载量: 2.38M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 33
- 点击次数: 1
- 依赖项目数: 6
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2015-01-26