Simple Yet Powerful PHP Caching Class

Overview

Code Climate Build Status Latest Stable Version Total Downloads License

Simple Yet Powerful PHP Caching Class

More information at http://www.phpfastcache.com One Class uses for All Cache. You don't need to rewrite your code many times again.

Supported: SSDB, Redis, Predis, Cookie, Files, MemCache, MemCached, APC, WinCache, X-Cache, PDO with SQLite


Not a "Traditional" Caching

phpFastCache is not a traditional caching method which is keep read and write to files, sqlite or mass connections to memcache, redis, mongodb... phpFastCache use my unique caching method. When you use Files, and Sqlite, I am guarantee you still can get fast speed almost like memcache & redis for sure. Also, when you use Memcache / Memcached, your miss hits will be reduce. Different with normal caching methods which shared everywhere on internet, phpFastCache Lib reduce the high I/O load, and faster than traditional caching method at least x7 - 10 times. However, some time you still want to use traditional caching, we support them too.

use phpFastCache\CacheManager;

// Default value: is "phpfastcache" (fastest), you can change to "normal" or "memory" (fast)
CacheManager::CachingMethod("normal");

// Recommend: use phpfastcache to reduce files I/O & CPU Load, Memcached missing hits, and make redis and other connections become faster.
// If you get any error due to Server / Hosting, try to change to "memory" , act almost same way as "phpfastcache" but slower a little bit
// In bad situation, use "normal" as traditional caching method

Reduce Database Calls

Your website have 10,000 visitors who are online, and your dynamic page have to send 10,000 same queries to database on every page load. With phpFastCache, your page only send 1 query to DB, and use the cache to serve 9,999 other visitors.


Rich Development API

phpFastCache offers you a lot of usefull APIS:

  • get($keyword) // The getter, obviously, return your cache object
  • set($keyword, $something_your_want_to_cache, $time_as_second = 0) // The setter, for those who missed it, put 0 meant cache it forever
  • delete($keyword) // For removing a cached thing
  • clean() // Allow you to completely empty the cache and restart from the beginning
  • touch($keyword, $time_you_want_to_extend) // Allow you to extends the lifetime of an entry without altering the value
  • increment($keyword, $step = 1) // For integer that we can count on
  • decrement($keyword, $step = 1) // Redundant joke...
  • search($string_or_regex, $search_in_value = false | true) // Allow you to perform some search on the cache index
  • isExisting($keyword) // Check if your cache entry exists, it is the equivalent of isset()
  • stats() // Return the cache statistics, useful for checking disk space used by the cache etc.

Also support Multiple calls, Tagging, Setup Folder for caching. Look at our examples folders.


As Fast To Implement As Opening a Beer

👍 Step 1: Include phpFastCache in your project with composer:

composer require phpFastCache/phpFastCache

🚧 Step 2: Setup your website code to implements phpFastCache bits (With Composer)

get($key); if (is_null($products)) { $products = "DB QUERIES | FUNCTION_GET_PRODUCTS | ARRAY | STRING | OBJECTS"; // Write products to Cache in 10 minutes with same keyword $cache->set($key, $products, 600); echo " --> NO CACHE ---> DB | Func | API RUN FIRST TIME ---> "; } else { echo " --> USE CACHE --> SERV 10,000+ Visitors FROM CACHE ---> "; } /** * use your products here or return it; */ echo $products; ">
use phpFastCache\CacheManager;

// require_once ('vendor/autoload.php');

$cache = CacheManager::Files();

// $cache = CacheManager::Memcached();
// phpFastCache supported: SSDB, Redis, Predis, Cookie, Files, MemCache, MemCached, APC, WinCache, XCache, SQLite
// $cache = CacheManager::getInstance("auto", $config);
// $cache = CacheManager::getInstance("memcached", $server_config);

/**
 * Try to get $products from Caching First
 * product_page is "identity keyword";
 */
$key = "product_page";
$products = $cache->get($key);

if (is_null($products)) {
    $products = "DB QUERIES | FUNCTION_GET_PRODUCTS | ARRAY | STRING | OBJECTS";
    // Write products to Cache in 10 minutes with same keyword
    $cache->set($key, $products, 600);

    echo " --> NO CACHE ---> DB | Func | API RUN FIRST TIME ---> ";

} else {
    echo " --> USE CACHE --> SERV 10,000+ Visitors FROM CACHE ---> ";
}

/**
 * use your products here or return it;
 */
echo $products;

💾 Legacy / Lazy Method (Without Composer)

get($key); $products = CacheManager::get($key); // CacheManager::set() , ::touch ::increment ::search ..etc, work same way without create new instance // yet it's the same as autoload ">
// In your config files
// require_once ('phpFastCache/src/autoload.php');

use phpFastCache\CacheManager;

// $cache = $cache = CacheManager::Files();
// $cache = phpFastCache();
// $cache = phpFastCache("files");
// $cache = phpFastCache("memcached");

/**
 * Try to get $products from Caching First
 * product_page is "identity keyword";
 */
$key = "product_page";
// $products = $cache->get($key);
$products = CacheManager::get($key);
// CacheManager::set() , ::touch ::increment ::search ..etc, work same way without create new instance

// yet it's the same as autoload

Step 3: Enjoy ! Your website is now faster than flash !

For curious developpers, there is a lot of others available examples here.

💥 phpFastCache support

Found an issue or had an idea ? Come here here and let you know !

You might also like...
Symfony Bundle for the Stash Caching Library

TedivmStashBundle The TedivmStashBundle integrates the Stash caching library into Symfony, providing a powerful abstraction for a range of caching eng

:zap: Simple Cache Abstraction Layer for PHP

⚡ Simple Cache Class This is a simple Cache Abstraction Layer for PHP = 7.0 that provides a simple interaction with your cache-server. You can define

Simple artisan command to debug your redis cache. Requires PHP 8.1 & Laravel 9
Simple artisan command to debug your redis cache. Requires PHP 8.1 & Laravel 9

🔎 php artisan cache:debug Simple artisan command to debug your redis cache 🚀 Installation You can install the package via composer: composer require

Simple and swift MongoDB abstraction.

Monga A simple and swift MongoDB abstraction layer for PHP 5.4+ What's this all about? An easy API to get connections, databases and collections. A fi

Simple cache abstraction layer implementing PSR-16

sabre/cache This repository is a simple abstraction layer for key-value caches. It implements PSR-16. If you need a super-simple way to support PSR-16

Simple cache

Simple cache

A simple cache library. Implements different adapters that you can use and change easily by a manager or similar.
A simple cache library. Implements different adapters that you can use and change easily by a manager or similar.

Desarolla2 Cache A simple cache library, implementing the PSR-16 standard using immutable objects. Caching is typically used throughout an applicatito

A simple cache library. Implements different adapters that you can use and change easily by a manager or similar.
A simple cache library. Implements different adapters that you can use and change easily by a manager or similar.

Desarolla2 Cache A simple cache library, implementing the PSR-16 standard using immutable objects. Caching is typically used throughout an applicatito

PHP cache library, with adapters for e.g. Memcached, Redis, Couchbase, APC(u), SQL and additional capabilities (e.g. transactions, stampede protection) built on top.
PHP cache library, with adapters for e.g. Memcached, Redis, Couchbase, APC(u), SQL and additional capabilities (e.g. transactions, stampede protection) built on top.

Donate/Support: Documentation: https://www.scrapbook.cash - API reference: https://docs.scrapbook.cash Table of contents Installation & usage Adapters

Owner
Khoa Bui
Founder of phpFastCache.com
Khoa Bui
Caching implementation with a variety of storage options, as well as codified caching strategies for callbacks, classes, and output

laminas-cache Laminas\Cache provides a general cache system for PHP. The Laminas\Cache component is able to cache different patterns (class, object, o

Laminas Project 69 Jan 7, 2023
Caching extension for the Intervention Image Class

Intervention Image Cache extends the Intervention Image Class package to be capable of image caching functionality.

null 616 Dec 30, 2022
Stash - A PHP Caching Library

Stash - A PHP Caching Library Stash makes it easy to speed up your code by caching the results of expensive functions or code. Certain actions, like d

Tedious Developments 943 Dec 15, 2022
The next-generation caching layer for PHP

The next-generation caching layer for PHP

CacheWerk 115 Dec 25, 2022
A thin PSR-6 cache wrapper with a generic interface to various caching backends emphasising cache tagging and indexing.

Apix Cache, cache-tagging for PHP Apix Cache is a generic and thin cache wrapper with a PSR-6 interface to various caching backends and emphasising ca

Apix 111 Nov 26, 2022
Yii Caching Library - Redis Handler

Yii Caching Library - Redis Handler This package provides the Redis handler and implements PSR-16 cache. Requirements PHP 7.4 or higher. Installation

Yii Software 4 Oct 9, 2022
Query caching for Laravel

Query caching for Laravel

Dwight Watson 1k Dec 30, 2022
Stash makes it easy to speed up your code by caching the results of expensive functions or code

Stash - A PHP Caching Library Stash makes it easy to speed up your code by caching the results of expensive functions or code. Certain actions, like d

Tedious Developments 943 Dec 15, 2022
DataLoaderPhp is a generic utility to be used as part of your application's data fetching layer to provide a simplified and consistent API over various remote data sources such as databases or web services via batching and caching.

DataLoaderPHP is a generic utility to be used as part of your application's data fetching layer to provide a simplified and consistent API over various remote data sources such as databases or web services via batching and caching.

Webedia - Overblog 185 Nov 3, 2022