oops/cache-factory

该软件包已被废弃且不再维护。作者建议使用 contributte/cache 软件包。

Nette 的简单缓存工厂扩展。

3.0.0 2016-08-27 07:37 UTC

This package is auto-updated.

Last update: 2022-02-01 12:48:48 UTC


README

⚠️ 本软件包不再维护。 可以使用 contributte/cache 代替。

缓存是网络开发中一个非常常见的任务。在 Nette 中创建 Cache 实例的当前做法是将 IStorage 作为依赖项进行枚举,并手动创建 Cache,如文档中所示。然而,这会让依赖于缓存的类的单元测试变得非常痛苦。你可能需要模拟存储并通过 Cache 代码来找到在存储上调用哪些方法,或者使用某种自动加载魔法。我认为这两种方法都不是一个好的选择。我在每个项目中都会写一个像这个包中那样的简单工厂,所以我把它做成了一个扩展。

安装和需求

$ composer require oops/cache-factory

Oops/CacheFactory 需要 PHP >= 5.6。

使用方法

在您的配置中注册扩展

extensions:
	cacheFactory: Oops\CacheFactory\DI\CacheFactoryExtension

并将所有直接 Cache 实例化的出现替换为对工厂的调用,这样这个

class CachedFoo
{
	private $cache;

	public function __construct(Nette\Caching\IStorage $cacheStorage)
	{
		$this->cache = new Nette\Caching\Cache($cacheStorage, 'namespace');
	}
}

就变成了这个

class CachedFoo
{
	private $cache;

	public function __construct(Oops\CacheFactory\Caching\CacheFactory $cacheFactory)
	{
		$this->cache = $cacheFactory->create('namespace');
	}
}

工厂会自动使用配置中注册的存储。为了提供向后兼容性,如果您需要,也可以向工厂传递任意存储

$cacheFactory->create('namespace', new Nette\Caching\Storages\DevNullStorage());