fsi/cache

This package is abandoned and no longer maintained. No replacement package was suggested.

FSi Cache - Lightweight component that supports different cache storages with namespaces.

0.9.3 2012-11-08 13:18 UTC

This package is auto-updated.

Last update: 2021-02-10 10:31:25 UTC


README

Do not use this package, as it will not receive any updates and may be deleted in the future.

FSi Cache Component Documentation

Features:

  • supports array, APC and file cache storages. New storages will be added in the future.
  • supports namespaces inside of cache

By default all cache types use fsicache namespace, but you can change it using setNamespace method:

<?php

$cache->setNamespace('namespace-name');

You can also use option 'namespace' while creating new cache (it can be used in all types of cache).

<?php

$cache = new ArrayCache(array('namespace' => 'namespace-name'));

There is also a possibility to pass namespace as optional parameter into methods:

  • getItem($key, $namespace = null)
  • hasItem($key, $namespace = null)
  • addItem($key, $item, $lifetime = 0, $namespace = null)
  • setItem($key, $item, $lifetime = 0, $namespace = null)
  • removeItem($key, $namespace = null)

If $namespace is null the current namespace is taken from method getNamespace().

Setup and autoloading

We highly recommend to use autoloader generated by composer.phar.

Adding reflection into composer.json

{
    ...
    "require": {
        ...
        "fsi/cache": "0.9.*"
        ...
    },
    ...
}

Array Cache

Array cache should be used only in development environment to simulate normal cache behavior.

Example:

<?php

$cache = new ArrayCache();

APC Cache

APC cache require APC extension enabled in webserv. Informations about APC can be found at php.net

Example:

<?php

$cache = new ApcCache();

File Cache

File cache require cache directory path inside of variable $options['directory'] that is passed in constructor There is also an additional parameter $options['dirlvl'] that describe how deep cache should be nested. dirlvl parameter might be useful when you know that cache will hold a big amount of files. Higher dirlvl means less files in signle cache directory.

Example:

<?php

$cache = new FileCache(array('directory' => '/tmp', 'dirlvl' => 3));

Examples

Basic Usage

<?php

use FSi\Component\Cache\ApcCache;

// Create APC cache instance with default namespace.
$cache = new ApcCache();

// Check if there is a foo.
if ($cache->hasItem('foo')) {
    echo 'foo exists in cache!';
} else {
    // Store foo-value in cache under key foo for 3600 seconds.
    $cache->setItem('foo', 'foo-value', 3600);
}

Namespace Usage

<?php

use FSi\Component\Cache\ApcCache;

// Create APC cache instance with default namespace.
$cache = new ApcCache();

$cache->setItem('key1', 'test', 0, 'testnamespace1');
$cache->setItem('key2', 'test', 0, 'testnamespace2');

$cache->hasItem('key1', 'testnamespace1'); // Will return true.
$cache->hasItem('key2', 'testnamespace2'); // Will return true.

$cache->hasItem('key2', 'testnamespace1'); // Will return false.
$cache->hasItem('key1', 'testnamespace2'); // Will return false.