/Cache

PSR-16 is a simple caching library that uses the Simple Cache interface.

Primary LanguagePHPMIT LicenseMIT

InitPHP Cache

PSR-16 is a simple caching library that uses the Simple Cache interface.

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

Requirements

Depending on the handler you will use, it may need PHP extensions.

  • Redis
  • PDO
  • Wincache
  • Memcache or Memcached

Installation

composer require initphp/cache

Usage

require_once "../vendor/autoload.php";
use \InitPHP\Cache\Cache;

$cache = Cache::create(\InitPHP\Cache\Handler\File::class, [
    'path'      => __DIR__ . '/Cache/';
]);

if(($posts = $cache->get('posts', null)) === null){
    $posts = [
        ['id' => '12', 'title' => 'Post 12 Title', 'content' => 'Post 12 Content'],
        ['id' => '15', 'title' => 'Post 15 Title', 'content' => 'Post 15 Content'],
        ['id' => '18', 'title' => 'Post 18 Title', 'content' => 'Post 18 Content']
    ];
    $cache->set('posts', $posts, 120);
}

echo '<pre>'; print_r($posts) echo '</pre>';

Configuration and Options

\InitPHP\Cache\Handler\File::class

$options = [
    'prefix'    => 'cache_',
    'mode'      => 0640,
];

\InitPHP\Cache\Handler\Memcache::class

$options = [
    'prefix'    => 'cache_',
    'host'          => '127.0.0.1',
    'port'          => 11211,
    'weight'        => 1,
    'raw'           => false,
    'default_ttl'   => 60,
];

\InitPHP\Cache\Handler\PDO::class

$options = [
    'prefix'    => 'cache_',
    'dsn'           => 'mysql:host=localhost;dbname=test',
    'username'      => null,
    'password'      => null,
    'charset'       => 'utf8mb4',
    'collation'     => 'utf8mb4_general_ci',
    'table'         => 'cache'
];

Below is a sample cache table creation query for MySQL.

CREATE TABLE `cache` (
    `name` VARCHAR(255) NOT NULL,
    `ttl` INT(11) NULL DEFAULT NULL,
    `data` TEXT NOT NULL,
    UNIQUE  (`name`)
) ENGINE = InnoDB CHARSET=utf8mb4 COLLATE utf8mb4_general_ci;

\InitPHP\Cache\Handler\Redis::class

$options = [
    'prefix'    => 'cache_',
    'host'      => '127.0.0.1',
    'password'  => null,
    'port'      => 6379,
    'timeout'   => 0,
    'database'  => 0
];

\InitPHP\Cache\Handler\Wincache::class

$options = [
    'prefix'    => 'cache_', // Cache Name Prefix
    'default_ttl'   => 60, // Used if ttl is NULL or not specified.
];

Credits

License

Copyright © 2022 MIT License