Skip to content

A multi-purpose cache engine PSR-6 and PSR-16 implementation with several drivers.

License

Notifications You must be signed in to change notification settings

byjg/php-cache-engine

Repository files navigation

Cache Engine

Build Status Opensource ByJG GitHub source GitHub license GitHub release

A multipurpose cache engine PSR-6 and PSR-16 implementation with several drivers.

PSR-16

PSR-16 defines a Simple Cache interface with less verbosity than PSR-6. Below a list of engines available in this library that is PSR-16 compliant:

PSR-16 Getting Started: here

PSR-6

The PSR-6 implementation use the engines defined above. PSR-6 is more verbosity and have an extra layer do get and set the cache values.

You can use one of the factory methods to create a instance of the CachePool implementation:

PSR-6 Getting Started: here

List of Cache Engines

Class Description
\ByJG\Cache\Psr16\NoCacheEngine Do nothing. Use it for disable the cache without change your code
\ByJG\Cache\Psr16\ArrayCacheEngine Local cache only using array. It does not persists between requests
\ByJG\AnyDataset\NoSql\Cache\KeyValueCacheEngine Use S3-Like or ClouflareKV as a store for the cache (other repository)
\ByJG\Cache\Psr16\FileSystemCacheEngine Save the cache result in the local file system
\ByJG\Cache\Psr16\MemcachedEngine Uses the Memcached as the cache engine
\ByJG\Cache\Psr16\TmpfsCacheEngine Uses the Tmpfs as the cache engine
\ByJG\Cache\Psr16\RedisCachedEngine uses the Redis as cache
\ByJG\Cache\Psr16\SessionCachedEngine uses the PHP session as cache
\ByJG\Cache\Psr16\ShmopCacheEngine (deprecated) uses the shared memory area for cache. Use TmpfsCacheEngine.

Logging cache commands

You can add a PSR Log compatible to the constructor in order to get Log of the operations

See log examples here

Use a PSR-11 container to retrieve the cache keys

You can use a PSR-11 compatible to retrieve the cache keys.

See more here

Beyond the PSR protocol

The PSR protocol is a good way to standardize the cache access, but sometimes you need to go beyond the protocol.

Some cache engines have additional features that are not covered by the PSR protocol.

Some examples are:

Install

Just type:

composer require "byjg/cache-engine"

Running Unit Testes

vendor/bin/phpunit --stderr

Note: the parameter --stderr after phpunit is to permit run the tests on SessionCacheEngine.

Dependencies

flowchart TD
    byjg/cache-engine --> psr/cache
    byjg/cache-engine --> psr/log
    byjg/cache-engine --> psr/simple-cache
    byjg/cache-engine --> psr/container
Loading

Open source ByJG

About

A multi-purpose cache engine PSR-6 and PSR-16 implementation with several drivers.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages