How to use PHP OPCache?

opcache, php

Solution

Installation

OpCache is compiled by default on PHP5.5+. However it is disabled by default. In order to start using OpCache in PHP5.5+ you will first have to enable it. To do this you would have to do the following.

Add the following line to your `php.ini`:

zend_extension=/full/path/to/opcache.so (nix)
zend_extension=C:\path\to\php_opcache.dll (win)

Note that when the path contains spaces you should wrap it in quotes:

zend_extension="C:\Program Files\PHP5.5\ext\php_opcache.dll"

Also note that you will have to use the `zend_extension` directive instead of the "normal" `extension` directive because it affects the actual Zend engine (i.e. the thing that runs PHP).

Usage

Currently there are four functions which you can use:

`opcache_get_configuration()`:

Returns an array containing the currently used configuration OpCache uses. This includes all ini settings as well as version information and blacklisted files.

var_dump(opcache_get_configuration());

`opcache_get_status()`:

This will return an array with information about the current status of the cache. This information will include things like: the state the cache is in (enabled, restarting, full etc), the memory usage, hits, misses and some more useful information. It will also contain the cached scripts.

var_dump(opcache_get_status());

`opcache_reset()`:

Resets the entire cache. Meaning all possible cached scripts will be parsed again on the next visit.

opcache_reset();

`opcache_invalidate()`:

Invalidates a specific cached script. Meaning the script will be parsed again on the next visit.

opcache_invalidate('/path/to/script/to/invalidate.php', true);

Maintenance and reports

There are some GUI's created to help maintain OpCache and generate useful reports. These tools leverage the above functions.

OpCacheGUI

Disclaimer I am the author of this project

Features:

- OpCache status

- OpCache configuration

- OpCache statistics

- OpCache reset

- Cached scripts overview

- Cached scripts invalidation

- Multilingual

- Mobile device support

- Shiny graphs

Screenshots:

URL: https://github.com/PeeHaa/OpCacheGUI

opcache-status

Features:

- OpCache status

- OpCache configuration

- OpCache statistics

- Cached scripts overview

- Single file

Screenshot:

URL: https://github.com/rlerdorf/opcache-status

opcache-gui

Features:

- OpCache status

- OpCache configuration

- OpCache statistics

- OpCache reset

- Cached scripts overview

- Cached scripts invalidation

- Automatic refresh

Screenshot:

URL: https://github.com/amnuts/opcache-gui

Problem

PHP 5.5 has been released and it features a new code caching module called OPCache, but there doesn't appear to be any documentation for it. So where is the documentation for it and how do I use OPcache?

Original source