PSR-16 is a simple caching library that uses the Simple Cache interface.
- 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
composer require initphp/cache
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>';
$options = [
'prefix' => 'cache_',
'mode' => 0640,
];
$options = [
'prefix' => 'cache_',
'host' => '127.0.0.1',
'port' => 11211,
'weight' => 1,
'raw' => false,
'default_ttl' => 60,
];
$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;
$options = [
'prefix' => 'cache_',
'host' => '127.0.0.1',
'password' => null,
'port' => 6379,
'timeout' => 0,
'database' => 0
];
$options = [
'prefix' => 'cache_', // Cache Name Prefix
'default_ttl' => 60, // Used if ttl is NULL or not specified.
];
Copyright © 2022 MIT License