laminas/laminas-cache

支持多种存储选项的缓存实现,以及针对回调、类和输出的编码化缓存策略

4.0.4 2024-07-10 15:26 UTC

README

Build Status

🇷🇺 俄罗斯公民

我们,Laminas的成员,来自不同的国家。我们中许多人都有在俄罗斯和乌克兰的朋友、亲戚和同事。我们中的一些人出生在俄罗斯。我们中的一些人现在住在俄罗斯。我们中的一些人的祖父母在第二次世界大战中与法西斯作战。这里没有人支持法西斯主义。

我们中的一位成员有一位乌克兰亲戚,她带着儿子从家里逃了出来。由于前方道路上的轰炸,火车延误了。我们有一些朋友在防空洞里躲避。我们在空袭后焦急地追踪他们的消息,空袭无差别地攻击医院、学校、幼儿园和住宅。我们不是从任何媒体上得知这些,我们是直接目睹的。

你们足够信任我们,才会使用我们的程序,我们请求你们再次信任我们。我们需要帮助。走出家门,抗议这场毫无意义的战争。停止杀戮。说“不,战争!”

🇺🇸 致俄罗斯公民

我们Laminas的成员来自世界各地。我们中许多人都有在俄罗斯和乌克兰的朋友、家人和同事。我们中的一些人出生在俄罗斯。我们中的一些人现在住在俄罗斯。我们中的一些人的祖父母在第二次世界大战中与纳粹作战。这里没有人支持法西斯主义。

我们的一位团队成员有一位乌克兰亲戚,她和儿子一起从家里逃了出来。由于前方道路上的轰炸,火车延误了。我们有一些朋友在防空洞里躲避。我们在空袭后焦急地追踪他们的消息,空袭无差别地攻击医院、学校、幼儿园和住宅。我们不是从任何媒体上得知这些,这是我们亲身体验的。

你们信任我们,才会使用我们的软件。我们请求你们信任我们,说出真相。我们需要帮助。走出家门,抗议这场不必要的战争。停止杀戮。说“停止战争!”

Laminas\Cache 为PHP提供了一个通用的缓存系统。使用不同的存储适配器(数据库、文件、Memcache等),Laminas\Cache 组件能够缓存不同的模式(类、对象、输出等)。

独立使用

如果此组件在不使用 laminas-mvcmezzio 的情况下使用,则需要一个PSR-11容器来获取服务、适配器、插件等。

最简单的方法是使用 laminas-config-aggregatorlaminas-servicemanager 一起。

use Laminas\Cache\ConfigProvider;
use Laminas\Cache\Service\StorageAdapterFactoryInterface;
use Laminas\Cache\Storage\Adapter\Memory;
use Laminas\ConfigAggregator\ConfigAggregator;
use Laminas\ServiceManager\ServiceManager;

$config = (new ConfigAggregator([
    ConfigProvider::class,
]))->getMergedConfig();

$dependencies = $config['dependencies'];

$container = new ServiceManager($dependencies);

/** @var StorageAdapterFactoryInterface $storageFactory */
$storageFactory = $container->get(StorageAdapterFactoryInterface::class);

$storage = $storageFactory->create(Memory::class);

$storage->setItem('foo', 'bar');

基准测试

我们提供了使用 PHPBench 框架进行基准测试的脚本;这些脚本可以在每个存储适配器的 benchmark/ 目录中找到。

要执行基准测试,您可以使用以下命令

$ vendor/bin/phpbench run --report=aggregate