Dans le but d’optimiser les performances d’une application, il est demandé de mettre en place des systèmes de caches physique ou en mémoire. Ces caches peuvent ainsi permettre de stocker diverses sorties telles que des pages HTML générées, des résultats de requêtes en base de données ou le bytecode des fichiers PHP.
PHP est un langage interprété, à chaque demande d’exécution d’un script, PHP charge, analyse puis compile le code source en bytecode (opcode) à l’aide d’un pré-compilateur avant de l’envoyer à la machine virtuelle interne (interpréteur) du langage pour exécution.
Le code source de l’application n’étant généralement pas modifié en temps réel, le processus de compilation des sources en bytecode retourne le plus souvent un résultat à l’indentique pendant une période plus ou moins longue. Afin de supprimer ce processus pendant une période et d’alléger les ressources du serveur, il devient donc intéressant de cacher la sortie de cette compilation pour une réutilisation à chaque appel de page identique.
Ceci permet d’économiser à chaque appel de page le chargement, l’analyse et la compilation du code source PHP en bytecode
Depuis la version 5.5, une nouvelle extension de cache d’opcode (OPcache) a été ajoutée