承接 ez-php/cache 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ez-php/cache

Composer 安装命令:

composer require ez-php/cache

包简介

Cache module for the ez-php framework — array, file, and Redis drivers with a unified interface

README 文档

README

Cache module for the ez-php framework — array, file, Redis, and Memcached drivers with a unified interface, tagging, locking, cache statistics, and stampede protection.

CI

Requirements

  • PHP 8.5+
  • ez-php/framework 0.*
  • ext-redis (for Redis driver)
  • ext-memcached (for Memcached driver)

Installation

composer require ez-php/cache

Setup

Register the service provider:

$app->register(\EzPhp\Cache\CacheServiceProvider::class);

Configure in config/cache.php:

return [
    'driver'    => env('CACHE_DRIVER', 'array'), // array | file | redis | memcached
    'file_path' => storage_path('cache'),
    'redis'     => [
        'host'     => env('REDIS_HOST', '127.0.0.1'),
        'port'     => (int) env('REDIS_PORT', 6379),
        'database' => (int) env('REDIS_DATABASE', 0),
    ],
    'memcached' => [
        'host' => env('MEMCACHED_HOST', '127.0.0.1'),
        'port' => (int) env('MEMCACHED_PORT', 11211),
    ],
];

Usage

Basic operations

$cache = $app->make(\EzPhp\Cache\CacheInterface::class);

$cache->set('key', 'value', ttl: 3600);
$value  = $cache->get('key', 'default');
$cache->forget('key');
$cache->has('key');
$result = $cache->remember('key', 60, fn () => expensiveComputation());
$cache->flush();

Tagging

$tagged = $cache->tags('users');
$tagged->set('profile:42', $profile, 300);
$tagged->flush(); // invalidates all keys tagged with 'users'

Locking

$lock = $cache->lock('process-payments', ttl: 30);
if ($lock->acquire()) {
    try {
        // critical section
    } finally {
        $lock->release();
    }
}

Stampede protection

use EzPhp\Cache\StampedeProtectedCache;

$protected = new StampedeProtectedCache($cache);
$value = $protected->remember('expensive-key', 300, fn () => heavyQuery());

Drivers

Driver CACHE_DRIVER Notes
array array In-memory, request lifetime only
file file Filesystem, serialised entries
redis redis Via ext-redis; flush() clears entire database
memcached memcached Via ext-memcached; flush() clears entire server

Classes

Class Description
CacheInterface Unified contract: get, set, forget, has, remember, flush
ArrayDriver In-memory driver
FileDriver Filesystem driver with MD5-keyed files
RedisDriver Redis driver via ext-redis; native TTL
MemcachedDriver Memcached driver via ext-memcached
FileLock / ArrayLock / RedisLock / MemcachedLock Driver-specific lock implementations
TaggableDriverTrait Provides tags()TaggedCache for all drivers
TaggedCache Scoped cache view: keys prefixed with tag hash
CacheStats Immutable value object: hits, misses
StampedeProtectedCache Decorator: probabilistic early recompute to prevent stampedes
CacheServiceProvider Config-driven driver binding

License

MIT — Andreas Uretschnig

统计信息

  • 总下载量: 3.16k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 3
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-03-14

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固