darrynten/any-cache

用于在PHP包中添加框架无关性缓存的适配器。

v1.0.1 2017-02-09 21:13 UTC

README

Travis Build Status StyleCI Status codecov Packagist Version MIT License

用于在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 存在问题。

工厂目前没有单元测试覆盖率。

主类也尚未进行测试。

致谢