nanoblocktech/psr-cache
最新稳定版本:1.4.1
Composer 安装命令:
composer require nanoblocktech/psr-cache
包简介
PSR cache for Luminova framework.
README 文档
README
The PSR Cache implementation for the Luminova Framework, Luminova Framework GitHub providing CachePool and SimpleCache class.
This library enables the use of both file-based and memory-based (Memcached) caching systems with an easy-to-use API.
For more information read the official documentation PSR Cache Pool and PSR Simple Cache.
Installation
Via Composer:
composer require nanoblocktech/psr-cache
Cache Pool Class
The CachePool class provides an interface to manage cache items.
It supports multiple cache storage driver, such as file-based or memory-based (Memcached) caching.
Usage Example
<?php use \Luminova\Psr\Cache\CachePool; use \Luminova\Psr\Cache\CacheItem; $pool = CachePool::withFileCache('my_cache', 'my_cache_folder'); // Set a cache item $item = $pool->getItem('cache_key'); $item->set('This is my cache data'); $pool->save($item); // Get a cache item $data = $pool->getItem('cache_key')->get(); // Check if the cache item exists if (!$item->isHit()) { $data = databaseLoadData(); $item->expiresAfter(new DateInterval('PT1H')); $item->set($data); $pool->save($item); } else { // Data exists in the cache, use it directly $data = $item->get(); }
CachePool Class Methods
Constructor
$pool = new CachePool( string|null $storage = 'psr_cache_storage', string|null $subfolderOrId = 'psr', string|null $driver = CachePool::FILECACHE );
- $storage: Cache storage name to differentiate cache spaces (defaults to
'psr_cache_storage'). - $subfolderOrId: Optional subfolder for file-based cache or Memcached persistent ID (defaults to
'psr'). - $driver: Optional cache driver, either
CachePool::FILECACHE(default) orCachePool::MEMCACHED.
Methods
// Retrieve a cache item by key. $pool->getItem('cache_key'): CacheItem; // Retrieve multiple cache items. $pool->getItems(['key1', 'key2']): iterable<key,CacheItem>; // Check if a cache item exists. $pool->hasItem('cache_key'): bool; // Save a cache item. $pool->save(CacheItemInterface $item): bool; // Save a deferred cache item. $pool->saveDeferred(CacheItemInterface $item): bool; // Commit deferred cache items. $pool->commit(): bool; // Rollback deferred cache items. $pool->rollback(): bool; // Delete a cache item by key. $pool->deleteItem('cache_key'): bool; // Delete multiple cache items. $pool->deleteItems(array ['key1', 'key2']): bool; // Clear all cached entries. $pool->clear(): bool;
Simple Cache Class
The SimpleCache class provides a simplified interface for interacting with the cache.
It offers basic operations for storing and retrieving cached data, it supports multiple cache storage driver, such as file-based or memory-based (Memcached) caching.
Usage Example
<?php use \Luminova\Psr\Cache\SimpleCache; $simple = SimpleCache::withFileCache('my_cache', 'my_cache_folder_name'); // Set a cache item $data = $simple->get('cache_key', 'NO_DATA'); if($item === 'NO_DATA'){ $data = 'This is my cache data'; $simple->set('cache_key', $data); }
SimpleCache Class Methods
Constructor
$simple = new SimpleCache( string|null $storage = 'psr_cache_storage', string|null $subfolderOrId = 'psr', string|null $driver = SimpleCache::FILECACHE );
Methods
// Retrieve a cache item by key, with a default fallback value. $simple->get('cache_key', 'default_value'): mixed; // Retrieve multiple cache items. $simple->getMultiple(array ['key1', 'key2'], 'default_value'): iterable<key, mixed>; // Check if a cache item exists. $simple->has('cache_key'): bool; // Save a cache item with an optional TTL. $simple->set('cache_key', 'data_to_save', int|DateInterval|null $ttl = 60): bool; // Save multiple cache items with an optional TTL. $simple->setMultiple(array ['key1' => 'data1', 'key2' => 'data2'], int|DateInterval|null $ttl = 60): bool; // Delete a cache item. $simple->delete('cache_key'): bool; // Delete multiple cache items. $simple->deleteMultiple(array ['key1', 'key2']): bool; // Clear all cache entries. $simple->clear(): bool;
Cache Item Class
The CacheItem class represents an individual cache entry.
It includes methods to manipulate and manage the cached data when working with CachePool class.
CacheItem Class Methods
Constructor
$item = new CacheItem(string $key, mixed $content = null, ?bool $isHit = null);
Methods
// Retrieve the key of the cache item. $item->getKey(): string; // Retrieve the value of the cache item. $item->get(): mixed; // Check if the cache item is a hit. $item->isHit(): bool; // Set the value of the cache item. $item->set(mixed $value): static; // Set the expiration time of the cache item. $item->expiresAt(?DateTimeInterface $expiration): static; // Set the expiration time relative to the current time. $item->expiresAfter(int|DateInterval|null $time): static;
统计信息
- 总下载量: 34
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2024-03-04