darrynten / any-cache
用于在PHP包中添加框架无关性缓存的适配器。
v1.0.1
2017-02-09 21:13 UTC
Requires
- php: ^5.5.9 || ^7.0
Requires (Dev)
- doctrine/cache: ^1.6
- illuminate/cache: ^5.4
- illuminate/contracts: ^5.4
- mockery/mockery: dev-master
- phpunit/phpunit: ~5.0
- symfony/cache: ~3.0
- symfony/dependency-injection: ~2.8|~3.0
- symfony/http-kernel: ~2.8|~3.0
Suggests
- doctrine/cache: Use any Doctrine cache driver for cache
- symfony/cache: Use any Symfony cache driver for cache
This package is auto-updated.
Last update: 2024-09-09 10:31:43 UTC
README
用于在PHP包中添加框架无关性缓存的适配器。
支持PHP 5.6+
安装
composer require darrynten/any-cache
目标
允许包开发者通过简单接口使用其安装框架的原生缓存机制。
可以传递一个工件,但也可以自动检测其宿主框架。
传递具有优先级,允许开发者使用特定的框架,但可以使用完全不同的缓存库或配置。
详细信息
包创建者可以在其包中包含 AnyCache 并利用支持的宿主框架的原生缓存能力。
AnyCache 自动检测其宿主框架,无需任何额外配置,尽管它也允许传递所需的缓存。
如果没有提供或没有缓存可用,则将创建一个本地的临时 ArrayCache 并默认使用。这是瞬时的,不是持久的。
这允许你在包中不添加任何额外的缓存需求,同时允许你利用已经存在的任何缓存构造。
支持的框架
- 临时数组(默认)
- Laravel
- Symfony
- Doctrine
- Psr6
- CodeIgniter(部分完成)
- ...
支持的缓存调用
- get ($key, $default)
- set ($key, $value, $time)
- has ($key)
- pull ($key)
- forever ($key, $value)
- ...
提供
创建一个新实例。
use DarrynTen\AnyCache; $this->cache = new AnyCache()
调用
$key = 'foo'; $value = 'bar'; $time = 60; // Set a value $this->cache()->set($key, $value, $time); // Get a cached value $result = $this->cache()->get($key); // Check if a key exists if ($this->cache->has($key)) { // } // Get and unset $result = $this->cache()->pull($key);
备注
CodeIgniter 的支持尚未完成,目前无法自动检测此框架。
缺少测试
Laravel 的测试尚未完成 100%,在 get 方法上测试 Cache Facade 存在问题。
工厂目前没有单元测试覆盖率。
主类也尚未进行测试。
致谢
- Marcel Pociot 和他的 Botman 项目 提供了原始想法和实现。
- Alexander Marinov 提供了他的惊人技能。