Skip to content

OpenClassrooms/DoctrineCacheExtension

Folders and files

NameName
Last commit message
Last commit date
Dec 6, 2016
Jan 20, 2016
Aug 9, 2015
Feb 16, 2016
Aug 13, 2015
Aug 9, 2015
Jan 18, 2016
Aug 6, 2024
Aug 9, 2015

Repository files navigation

Doctrine Cache Extension

Build Status SensioLabsInsight Coverage Status

The Doctrine Cache extension adds the following features to Doctrine Cache implementation:

  • Default lifetime
  • Fetch with a namespace
  • Save with a namespace
  • Cache invalidation through namespace strategy

Installation

The easiest way to install DoctrineCacheExtension is via composer.

Create the following composer.json file and run the php composer.phar install command to install it.

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

use OpenClassrooms\DoctrineCacheExtension\CacheProviderDecorator;

//do things

Instantiation

OpenClassrooms CacheProviderDecorator needs a Doctrine CacheProvider to be instantiated.

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

A factory can be used to accomplish this.

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

Default lifetime

Specify lifetime in the constructor:

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

Or via the factory:

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

Or specify a default lifetime for all the cache providers:

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

Fetch with namespace

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

Save with namespace

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

Cache invalidation

$cacheProviderDecorator->invalidate($namespaceId);