timurturdyev/laminas-cache

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

4.0.4 2024-07-10 15:26 UTC

README

Build Status

🇷🇺 俄罗斯公民

我们是来自不同国家的 Laminas 参与者。我们中许多人既有在俄罗斯的朋友、亲属和同事,也有在乌克兰的。其中一些人出生在俄罗斯。一些人现在住在俄罗斯。一些人祖父母在二战中与法西斯作战。这里没有人支持法西斯主义。

我们其中一人有一个乌克兰亲属,她带着儿子逃离了家园。火车因为前方道路的轰炸而延误。我们有朋友躲在防空洞里。我们在空袭后焦虑地等待他们的消息,空袭无差别地攻击医院、学校、幼儿园和住宅。我们不是从任何媒体上得知这些消息。我们直接目睹了这一切。

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

🇺🇸 致俄罗斯公民

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

我们团队的一员有一个乌克兰亲属,她带着儿子逃离了家园。火车因为前方道路的轰炸而延误。我们有朋友躲在防空洞里。我们在空袭后焦虑地等待他们的消息,空袭无差别地攻击医院、学校、幼儿园和住宅。我们不是从任何媒体上得知这些消息。这是我们的亲身经历。

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

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

独立

如果此组件不使用 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 框架对 laminas-cache 进行基准测试的脚本;这些脚本可以在每个存储适配器的 benchmark/ 目录中找到。

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

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