initphp / cache
PSR-16 is a simple caching library that uses the Simple Cache interface.
0.1
2022-03-17 08:22 UTC
Requires
- php: >=5.6
- psr/simple-cache: ^1.0
README
PSR-16 is a simple caching library that uses the Simple Cache interface.
Requirements
- PHP 5.6 or higher
- PSR-16 Simple Cache Interface
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