定制 mattmezza/cacheasy 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

mattmezza/cacheasy

Composer 安装命令:

composer require mattmezza/cacheasy

包简介

I hate slow APIs, I cache things on disk.

README 文档

README

Scrutinizer Code Quality Code Coverage Build Status

I hate slow APIs, I cache things on disk.

Install

composer require mattmezza/cacheasy

Usage

With string responses:

$providerStrAPI = new class implements Cacheasy\StringProvider {
    public function get() : string
    {
        return (new SlowAPIsClient())->slowAPI();
    }
};
// ./cache is the cache path, 86400 is the time to live
$cache = new Cache("./cache", 86400);
// if slowAPI is not cached let's get the data and cache them
$result = $cache->getString("slowAPI", $providerStrAPI); # this is slow :(
$result2 = $cache->getString("slowAPI", $providerStrAPI); # this is blazing fast :)
echo $result2;

With JSON responses:

$providerJsonAPI = new class implements Cacheasy\JsonProvider {
    public function get() : array
    {
        return (new SlowAPIsClient())->slowAPI();
    }
};
// ./cache is the cache path, 86400 is the time to live
$cache = new Cache("./cache", 86400);
// if slowAPI is not cached let's get the data and cache them
$result = $cache->getJson("slowjsonAPI", $providerJsonAPI); # this is slow :(
$result2 = $cache->getJson("slowjsonAPI", $providerJsonAPI); # this is blazing fast :)
echo $result2["property"];

API

  • cacheString($key, $string) : string: caches a string with key
  • cacheJson($key, $array) : array: caches an array to json with key
  • hitString($key) : string: tries to resume from cache a string with key
  • hitJson($key) : array: tries to resume from cache a json with key
  • isCached($key) : bool: checks if key is cached on disk and if it is not expired
  • getJson($key, $provider = null, bool $forceFresh = false) : array: returns hitJson(...) if key is cached, calls provider otherwise. Throws exception if $provider is null and $key is not cached. If $forceFresh is set to true skips isCached check and calls the provider (ultimately caching the data).
  • getString($key, $provider = null, bool $forceFresh = false) : string: returns hitString(...) if key is cached, calls provider otherwise. Throws exception if $provider is null and $key is not cached. If $forceFresh is set to true skips isCached check and calls the provider (ultimately caching the data).
  • invalidate($key) : void: deletes the cached resource
  • invalidateAll() : void: deletes all the cached resources

Exceptions

MissingProviderException: when get..(...) is called for a non cached resource and no provider is passed, or when, even if the resource is cached, the method is invoked with null provider and with true force fresh values. NotCachedException: when you wanna hit the cache but the resource is not cached yet.

Development

  • git clone https://github.com/mattmezza/cacheasy.git
  • cd cacheasy
  • composer test
Matteo Merola mattmezza@gmail.com

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-03-30

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固