2017 © Pedro Peláez
 

library cacheable

Transparent caching library

image

sci/cacheable

Transparent caching library

  • Sunday, February 21, 2016
  • by DrSchimke
  • Repository
  • 1 Watchers
  • 0 Stars
  • 1 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 1 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

Cacheable – A transparent caching library

Build Status Build Status, (*1)

Installation

Using composer:, (*2)

composer require sci/cacheable

Usage

Lets say, you have a class Foo, implementing a method Foo::bar() with quite high time/resource consumption:, (*3)

class Foo
{
    public function bar($a, $b)
    {
        // make some hard things with $a and $b
        ...

        return ...; // some result
    }
}

$foo = new Foo();

$bar = $foo->bar(1, 2); // takes some amount of time

// and later, again...
$bar = $foo->bar(1, 2); // takes the same amount of time, again

If there are no side-effects, the result of Foo::bar() is determined only by its arguments $a and $b. So you could use some cache, if eventuelly the method is called again. To avoid messing around with cache keys, you can use sci\cacheable:, (*4)


use Sci\Cacheable; use Sci\CacheTrait; class Foo implements Cacheable { use CacheTrait; public function bar($a, $b) { // make some hard things with $a and $b ... return ...; // some result } } $foo = new Foo(); $foo->setCache(/* any PSR-6 cache pool interface */) $bar = $foo->cache()->bar(1, 2); // 1st call takes some time, but now, the result is stored into cache // and later, again... $bar = $foo->cache()->bar(1, 2); // 2nd call's result comes directly from cache

en détail

  • A class to be cached (Foo in example above) implements the interface Sci\Cacheable (which demands a method cache()).
  • This can be done using Sci\CacheTrait (which additially provides a method setCache()).
  • The method setCache gets as first argument a service, implementing Psr\Cache\CacheItemPoolInterface.
    • This cache pool is the actual cache backend.
    • An optional second argument to setCache is the default TTL (_time to live_) for all cached values.
  • To use the cache, method calls are proxied through the method cache(), e.g. instead of $foo->bar(1, 2), now we use $foo->cache()->bar(1, 2).
    • Method cache() returns $this, i.e. it acts in a transparent way (fluent interface).
    • An optional argument for cache() allows to specify a TTL, different from the default one.

Implementation

License

All contents of this package are licensed under the MIT license., (*5)

The Versions

21/02 2016

dev-master

9999999-dev

Transparent caching library

  Sources   Download

MIT

The Requires

 

The Development Requires

21/02 2016

1.0.1

1.0.1.0

Transparent caching library

  Sources   Download

MIT

The Requires

 

The Development Requires

21/02 2016

dev-doctrine-cache

dev-doctrine-cache

Caching library.

  Sources   Download

MIT

The Requires

 

The Development Requires

21/02 2016

1.0.0

1.0.0.0

Transparent caching library

  Sources   Download

MIT

The Requires

 

The Development Requires