2017 © Pedro Peláez
 

library php-cache

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

image

tarcisiojr/php-cache

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

  • Saturday, April 29, 2017
  • by tarcisiojr
  • Repository
  • 1 Watchers
  • 2 Stars
  • 1 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

PHP-CACHE

Build Status codecov Latest Stable Version Total Downloads Latest Unstable Version composer.lock SensioLabsInsight, (*1)

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

Segue abaixo um exemplo simples de utilização:, (*3)

<?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:, (*4)


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., (*5)

Como recurso básico existem duas implementações:, (*6)

  • 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., (*7)

  • 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., (*8)

Uso

Configure os sistemas de cache, se desejar:, (*9)

  • 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., (*10)

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

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

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., (*13)

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

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

Exemplo:, (*16)

<?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., (*17)

The Versions

29/04 2017

dev-master

9999999-dev

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

  Sources   Download

MIT

The Development Requires

by Tarcísio Júnior

29/04 2017

0.0.1

0.0.1.0

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

  Sources   Download

The Development Requires

by Tarcísio Júnior