BrFileCacheProvider

extends BrGenericCacheProvider

Implements simple caching class based on files in local file system.

Usage

There is singleton object for every cache types suported by the application, so you can access cache via magic br() function:

// getting cache instance for futher usage
$cache = br()->cache('file');

// accessing cache method directly
$value = br()->cache('file')->get('cacheValueKey');

If required you can create separate instance for file based cache. For example with different life time or different cache files location:

$fileCache = new BrFileCacheProvider();

$fileCache->setCacheLifeTime(5);
$fileCache->set('someName', 'someValue');

Class fields

There is no public fiels in this class

Class methods

NameDescription
setCachePath ($cacheFilePath);Path the the cache files storage. By default cache files will be created in the /cache subfolder of the root folder of your websie.
setCacheLifeTime ($seconds);Change default cache life time of 300 seconds to specified $seconds amount.
Inherited from BrGenericCacheProvider
set ($name, $value);Set cached value for specified $name.
get ($name, $defaultValue = null, $saveDefaultValue = false);Get cached value for specified $name. If value missing in cache - $defaulValue will be returned. If $saveDefaultValue set to TRUE - $defaultValue wil be saved as cached value for specified $name.
exists ($name);Check if specified $name has cached value.
remove ($name);Remove cached value for specified $name.

Test script

<?php

$fileCache = br()->cache('file');
$fileCache = new BrFileCacheProvider();

$randName       = '76a05677-1d23-c1c4-0d5c-86cbf2917fc5';
$randValue      = br()->guid();

$randArrayName  = 'e17b0472-f173-5dc4-951d-39105e5d86d5';
$randArrayValue = array('guid' => br()->guid());

br()->log('Step 1: Initial check');
br()->assert(!$fileCache->exists($randName), 'Scalar value exists');
br()->assert(!$fileCache->get($randName), 'Scalar value not null');
br()->assert(!$fileCache->exists($randArrayName), 'Array value exists');
br()->assert(!$fileCache->get($randArrayName), 'Array value not null');

$fileCache->set($randName, $randValue);
$fileCache->set($randArrayName, $randArrayValue);

br()->log('Step 2: Check after setting values');
br()->assert($fileCache->exists($randName), 'Scalar value missing');
br()->assert($fileCache->get($randName) == $randValue, 'Scalar value wrong');
br()->assert($fileCache->exists($randArrayName), 'Array value missing');
br()->assert($fileCache->get($randArrayName) == $randArrayValue, 'Array value wrong');

$fileCache = new BrFileCacheProvider();

br()->log('Step 3: Check after setting values and reinitializing cache object');
br()->assert($fileCache->exists($randName), 'Scalar value missing');
br()->assert($fileCache->get($randName) == $randValue, 'Scalar value wrong');
br()->assert($fileCache->exists($randArrayName), 'Array value missing');
br()->assert($fileCache->get($randArrayName) == $randArrayValue, 'Array value wrong');

$fileCache = new BrFileCacheProvider();
$fileCache->setCacheLifeTime(5);

sleep(10);

br()->log('Step 4: Setting lifetime to 5 seconds and waiting 10 seconds');
br()->assert(!$fileCache->exists($randName), 'Scalar value exists');
br()->assert(!$fileCache->get($randName), 'Scalar value not null');
br()->assert(!$fileCache->exists($randArrayName), 'Array value exists');
br()->assert(!$fileCache->get($randArrayName), 'Array value not null');

$fileCache = new BrFileCacheProvider();
$fileCache->set($randName, $randValue);
$fileCache->set($randArrayName, $randArrayValue);

br()->log('Step 5: Check after setting values again');
br()->assert($fileCache->exists($randName), 'Scalar value missing');
br()->assert($fileCache->get($randName) == $randValue, 'Scalar value wrong');
br()->assert($fileCache->exists($randArrayName), 'Array value missing');
br()->assert($fileCache->get($randArrayName) == $randArrayValue, 'Array value wrong');

$fileCache->remove($randName);
$fileCache->remove($randArrayName);

br()->log('Step 6: Check after removing values');
br()->assert(!$fileCache->exists($randName), 'Scalar value exists');
br()->assert(!$fileCache->get($randName), 'Scalar value not null');
br()->assert(!$fileCache->exists($randArrayName), 'Array value exists');
br()->assert(!$fileCache->get($randArrayName), 'Array value not null');