PHP Classes
elePHPant
Icontem

Simple Cache Class: Store cache values in different container types

Recommend this page to a friend!
  Info   View files Documentation   View files View files (33)   DownloadInstall with Composer Download .zip   Reputation   Support forum (1)   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2017-03-17 (1 month ago) RSS 2.0 feedStarStarStarStar 64%Total: 76 This week: 2All time: 8,747 This week: 403Up
Version License PHP version Categories
voku_simple-cache 2.1.0MIT/X Consortium ...5.3PHP 5, Cache
Collaborate with this project Author

simple-cache - github.com

Description

This class can store cache values in different container types.

It can store and retrieve data values in storage containes like MemCache, Redis, files, arrays, and APC.

The cache expiry time is also a configurable value.

  Performance   Level  
Name: Lars Moelleken <contact>
Classes: 16 packages by
Country: Germany Germany
Age: 29
All time rank: 1760111 in Germany Germany
Week rank: 4 Up1 in Germany Germany Up
Innovation award
Innovation award
Nominee: 7x

Details

Build Status Coverage Status Scrutinizer Code Quality Codacy Badge SensioLabsInsight Reference Status Dependency Status Latest Stable Version Total Downloads Latest Unstable Version PHP 7 ready License

Simple Cache Class

This is a simple Cache Abstraction Layer for PHP >= 5.3 that provides a simple interaction with your cache-server. You can define the Adapter / Serializer in the "constructor" or the class will auto-detect you server-cache in this order:

  1. Memcached / Memcache
  2. Redis
  3. Xcache
  4. APC / APCu
  5. File-Cache
  6. Static-PHP-Cache

Get "Simple Cache"

You can download it from here, or require it using composer.

{
  "require": {
    "voku/simple-cache": "2.*"
  }
}

Install via "composer require"

composer require voku/simple-cache
composer require predis/predis # if you will use redis as cache, then add predis

Quick Start

use voku\cache\Cache;

require_once 'composer/autoload.php';

$cache = new Cache();
$ttl = 3600; // 60s * 60 = 1h
$cache->setItem('foo', 'bar', $ttl);
$bar = $cache->getItem('foo');

Usage

use voku\cache\Cache;

$cache = new Cache();
  
if ($cache->getCacheIsReady() === true && $cache->existsItem('foo')) {
  return $cache->getItem('foo');
} else {
  $bar = someSpecialFunctionsWithAReturnValue();
  $cache->setItem('foo', $bar);
  return $bar;
}

If you have an heavy task e.g. a really-big-loop, then you can also use static-cache. But keep in mind, that this will be stored into PHP (it needs more memory) and it will be cleaned when the request is done.

use voku\cache\Cache;

$cache = new Cache();
  
if ($cache->getCacheIsReady() === true && $cache->existsItem('foo')) {
  for ($i = 0; $i <= 100000; $i++) {
    echo $this->cache->getItem('foo', 3); // use also static-php-cache, when we hit the cache 3-times
  }
  return $cache->getItem('foo');
} else {
  $bar = someSpecialFunctionsWithAReturnValue();
  $cache->setItem('foo', $bar);
  return $bar;
}

No-Cache for the admin or a specific ip-address

If you use the parameter "$checkForUser" (=== true) in the constructor, then the cache isn't used for the admin-session.

-> You can also overwrite the check for the user, if you add a global function named "checkForDev()".

  Files folder image Files  
File Role Description
Files folder imagesrc (1 directory)
Files folder imagetests (9 files)
Accessible without login Plain text file .editorconfig Data Auxiliary data
Accessible without login Plain text file .scrutinizer.yml Data Auxiliary data
Accessible without login Plain text file .styleci.yml Data Auxiliary data
Accessible without login Plain text file .travis.yml Data Auxiliary data
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file phpunit.xml Data Auxiliary data
Accessible without login Plain text file README.md Doc. Documentation

  Files folder image Files  /  src  
File Role Description
Files folder imagevoku (1 directory)

  Files folder image Files  /  src  /  voku  
File Role Description
Files folder imagecache (16 files)

  Files folder image Files  /  src  /  voku  /  cache  
File Role Description
  Plain text file AdapterApc.php Class Class source
  Plain text file AdapterApcu.php Class Class source
  Plain text file AdapterArray.php Class Class source
  Plain text file AdapterFile.php Class Class source
  Plain text file AdapterMemcache.php Class Class source
  Plain text file AdapterMemcached.php Class Class source
  Plain text file AdapterPredis.php Class Class source
  Plain text file AdapterXcache.php Class Class source
  Plain text file Cache.php Class Class source
  Plain text file CacheChain.php Class Class source
  Plain text file iAdapter.php Class Class source
  Plain text file iCache.php Class Class source
  Plain text file iSerializer.php Class Class source
  Plain text file SerializerDefault.php Class Class source
  Plain text file SerializerIgbinary.php Class Class source
  Plain text file SerializerNo.php Class Class source

  Files folder image Files  /  tests  
File Role Description
  Plain text file ApcCacheTest.php Class Class source
  Plain text file ApcuCacheTest.php Class Class source
  Plain text file ArrayCacheTest.php Class Class source
  Accessible without login Plain text file bootstrap.php Aux. Auxiliary script
  Plain text file CacheTest.php Class Class source
  Plain text file FileCacheTest.php Class Class source
  Plain text file MemcacheCacheTest.php Class Class source
  Plain text file MemcachedCacheTest.php Class Class source
  Plain text file RedisCacheTest.php Class Class source

 Version Control Unique User Downloads Download Rankings  
 100%
Total:76
This week:2
All time:8,747
This week:403Up
User Ratings User Comments (1)
 All time
Utility:91%StarStarStarStarStar
Consistency:91%StarStarStarStarStar
Documentation:100%StarStarStarStarStarStar
Examples:-
Tests:-
Videos:-
Overall:64%StarStarStarStar
Rank:750
 
nice
6 months ago (muabshir)
70%StarStarStarStar