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

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

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

tarcisiojr/php-cache

Composer 安装命令:

composer require tarcisiojr/php-cache

包简介

Sistema para cache de métodos baseado em https://github.com/spatie/once

README 文档

README

Build Status codecov Latest Stable Version Total Downloads Latest Unstable Version composer.lock SensioLabsInsight

Biblioteca para baseada na ideia do pacote once. Esta biblioteca permite cachear métodos podendo utilizar diversas estratégias para o comportamento do cache.

Segue abaixo um exemplo simples de utilização:

<?php

class ClasseQualquer  {

    public function gerarNroAleatorio() {
        return Cache::create(function () {
            return rand(1, 100);
        })
            ->once()        // Cacheia o valor uma única vez.
            ->statefull()   // Cache existente apenas em nivel de request.
            ->scope(false)  // Cache do método entre instâncias.
            ->ttl(10)       // Tempo do cache sera de 10 segundos.
            ->get();        // Executa a obtenção do valor
    }
}

Instalação

Editar seu arquivo composer.json e adicionar a sequinte dependência:


Interface para sistemas de Cache

Algumas estratégias de ache utilizam um sistema próprio para cachear os valores. Estes sistemas podem ser alterados configurando a própria estrategia através de uma implementação da interface PHP\Cache\API\CacheSystem.

Como recurso básico existem duas implementações:

  • PHP\Cache\Core\System\FileCacheSystem: neste sistema de cache persisente, onde os valores são salvos em um arquivo JSON configurado, os valores serão matidos enquanto o arquivo não for excluídos e/ou seus valores expurgados.

  • PHP\Cache\Core\System\StaticArrayCacheSystem: neste sistema os valores são persistidos apenas durante a execução do script, utilizando-se um array estático para mantê-lo.

Uso

Configure os sistemas de cache, se desejar:

  • PHP\Cache\Core\Cache::setStateCacheSystem(CacheSystem) : cache utilizado para armazenar os estados das estratégias. Caso deseje manter este estado através das execuções dos scripts, este deve ser um sistema de cache persistente.

  • PHP\Cache\Core\Strategy\StatefullCacheStrategy::setCacheSystem(CacheSystem): cache persistente utilizado pela estratégia Statefull.

  • PHP\Cache\Core\Strategy\StatelessCacheStrategy::setCacheSystem(CacheSystem): cache de request utilizado pela estratégia Stateless.

Em seguida basta selecionar o método (podendo ser static ou não) e/ou função a ser cacheada, utilize o método estático PHP\Cache\Core\Cache::create para criar uma instância do cache.

A partir da instância de cache você poderá selecionar a estrágias de armazenado e expiração, bem como escopo.

Por fim, para o obter o valor cachead (ou não) basta executar o método get().

Exemplo:

<?php

class ClasseQualquer  {

    public function gerarNroAleatorio() {
        return Cache::create(function () {
            return rand(1, 100);
        })
            ->once()        // Cacheia o valor uma única vez.
            ->statefull()   // Cache existente apenas em nivel de request.
            ->scope(false)  // Cache do método entre instâncias.
            ->ttl(10)       // Tempo do cache sera de 10 segundos.
            ->get();        // Executa a obtenção do valor
    }
}

Respeitando as estratégias configuradas, todas a vezes que método gerarNroAleatorio da classe ClasseQualquer for executado, a partir da segunda execução, o valor retornado será idêntico ao primeiro valor retornado. Este valor se será expirado após 10 segundos devido a extratégia ttl(10), portanto após este tempo será retornado um novo valor.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: Unknown
  • 更新时间: 2017-04-29

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固