2017 © Pedro Peláez
 

library cache

PHP OpCache implementation of PSR-16 Simple Cache Interface

image

odan/cache

PHP OpCache implementation of PSR-16 Simple Cache Interface

  • Friday, July 6, 2018
  • by odan
  • Repository
  • 3 Watchers
  • 5 Stars
  • 1,248 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 1 Open issues
  • 7 Versions
  • 17 % Grown

The README.md

OpCache Adapter (PSR-16 )

A PSR-16 Simple Cache Implementation., (*1)

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads, (*2)

Out-of-the-Box Bytecode Cache

PHP is an interpreted language. The default PHP runtime compiles PHP sourcecode to an intermediate representation called PHP bytecode which is then executed. A bytecode cache stores this compiled representation of PHP sourcecode in shared memory. This eliminates the need to load and compile sourcecode on each request which leads to a significant increase in performance (up to 70% more requests per second)., (*3)

The basic idea, when executing a PHP script is in two steps:, (*4)

  • First: the PHP code, written in plain-text, is compiled to opcodes
  • Then: those opcodes are executed.

When you have one PHP script, as long as it is not modified, the opcodes will always be the same ; so, doing the compilation phase each time that script is to be executed is kind of a waste of CPU-time., (*5)

To prevent that redundant-compilation, there are some opcode caching mechanism that you can use., (*6)

Once the PHP script has been compiled to opcodes, those will be kept in RAM -- and directly used from memory the next time the script is to be executed ; preventing the compilation from being done again and again., (*7)

Read more, (*8)

Requirements

  • PHP 7.2+ or 8.0+

Installation

composer require odan/cache

Usage

$cachePath = sys_get_temp_dir() . '/cache';

$cache = new \Odan\Cache\Simple\OpCache($cachePath);

// set a opcache value
$cache->set('foo', 'bar');

// get a opcache value
echo $cache->get('foo'); // bar

Known issues

Fatal error: Call to undefined method stdClass::__set_state(), (*9)

If there are objects in the value, they will be written as stdClass::__set_state(). This is fine for objects where __set_state() can be added, but it can't be added to stdClass., (*10)

To fix this issue just serialize the value you are trying to cache:, (*11)

$cache->set('key', serialize($object));

Then unserialize the string back to the original value:, (*12)

$object = unserialize($cache->get('key'));

Race conditions

If you're in a high-concurrency environment you should avoid using a filesystem cache. Multiple operations on the file system are very hard to make atomic in PHP., (*13)

Similar components

The Versions

06/07 2018

dev-master

9999999-dev https://github.com/odan/cache

PHP OpCache implementation of PSR-16 Simple Cache Interface

  Sources   Download

MIT

The Requires

 

The Development Requires

cache caching opcache psr-16 psr16

06/07 2018

0.3.0

0.3.0.0 https://github.com/odan/cache

PHP OpCache implementation of PSR-16 Simple Cache Interface

  Sources   Download

MIT

The Requires

 

The Development Requires

cache caching opcache psr-16 psr16

10/03 2018

0.2.0

0.2.0.0 http://github.com/odan/cache

PHP OpCache implementation of PSR-16 Simple Cache Interface

  Sources   Download

MIT

The Requires

 

The Development Requires

cache caching opcache psr-16 psr16

22/02 2017

v0.1.5

0.1.5.0 http://github.com/odan/cache

PHP OpCache implementation of PSR-16 Simple Cache Interface

  Sources   Download

MIT

The Requires

 

The Development Requires

cache caching opcache psr-16 psr16

22/02 2017

v0.1.4

0.1.4.0 http://github.com/odan/cache

PHP OpCache implementation of PSR-16 Simple Cache Interface

  Sources   Download

MIT

The Requires

 

The Development Requires

cache caching opcache psr-16 psr16

12/02 2017

0.1.2

0.1.2.0 http://github.com/odan/cache

PHP OpCache implementation of PSR-16 Simple Cache Interface

  Sources   Download

MIT

The Requires

 

The Development Requires

cache caching opcache psr-16 psr16

01/02 2017

0.1.0

0.1.0.0 http://github.com/odan/cache

PHP OpCache implementation of PSR-16 Simple Cache Interface

  Sources   Download

MIT

The Requires

 

The Development Requires

cache caching opcache psr-16 psr16