openclassrooms/doctrine-cache-extension

扩展 Doctrine Cache 功能的库

v1.0.0 2024-08-06 15:34 UTC

This package is auto-updated.

Last update: 2024-09-06 16:17:13 UTC


README

Build Status SensioLabsInsight Coverage Status

Doctrine Cache 扩展为 Doctrine Cache 实现添加以下功能

  • 默认有效期
  • 使用命名空间获取
  • 使用命名空间保存
  • 通过命名空间策略进行缓存失效

安装

安装 DoctrineCacheExtension 最简单的方法是通过 composer.

创建以下 composer.json 文件并运行 php composer.phar install 命令进行安装。

{
    "require": {
        "openclassrooms/doctrine-cache-extension": "*"
    }
}
<?php
require 'vendor/autoload.php';

use OpenClassrooms\DoctrineCacheExtension\CacheProviderDecorator;

//do things

使用方法

实例化

OpenClassrooms CacheProviderDecorator 需要一个 Doctrine CacheProvider 进行实例化。

$cacheProvider = new ArrayCache();
$cacheProviderDecorator = new CacheProviderDecorator($cacheProvider);

可以使用工厂来完成这个操作。

$factory = new CacheProviderDecoratorFactory();
$cacheProvider = $factory->create('array');

默认有效期

在构造函数中指定有效期

$cacheProviderDecorator = new CacheProviderDecorator($cacheProvider, 100);
$cacheProviderDecorator->save($id, $data);

或通过工厂

$cacheProvider = $factory->create('array', 100);

或为所有缓存提供程序指定默认有效期

$factory = new CacheProviderDecoratorFactory();
$factory->setDefaultLifetime(100);

使用命名空间获取

$data = $cacheProviderDecorator->fetchWithNamespace($id, $namespaceId);

使用命名空间保存

// Namespace and life time can be null
$data = $cacheProviderDecorator->saveWithNamespace($id, $data, $namespaceId, $lifeTime);

缓存失效

$cacheProviderDecorator->invalidate($namespaceId);