Le comportement de ces fonctions est
affecté par la configuration dans le fichier php.ini.
 Voici un éclaircissement sur
l'utilisation des directives de configuration.
 
 
   
    - 
     opcache.enablebool
- 
     
      Active le cache d'opcode. Lorsqu'il est désactivé, le code n'est
      ni optimisé, ni mis en cache. Le paramétrage de opcache.enablene peut être activé pendant l'exécution via la fonction
      ini_set(), il ne peut être que désactivé. Tenter de l'activer
      dans un script va générer une alerte.
 
- 
     opcache.enable_clibool
- 
     
      Active le cache d'opcode pour la version CLI de PHP.
      
- 
     opcache.memory_consumptionint
- 
     
      La taille de la mémoire partagée utilisée par OPcache, en megabytes.
      La valeur minimale permissible est "8",
      qui est forcé si une valeur plus petite est définie.
 
- 
     opcache.interned_strings_bufferint
- 
     
      La quantité de mémoire utilisée pour stocker des chaînes internes, en megabytes.
      La valeur maximale est de 32767 sur les architectures 64 bits, et de 4095 sur les architectures 32 bits.
      Note: 
      
       Avant PHP 8.4.0, la valeur maximale était de 4095 mégaoctets sur toutes les architectures.
      
      
 
- 
     opcache.max_accelerated_filesint
- 
     
      Le nombre maximal de clés (et donc, de scripts) dans la table de hachage d'OPcache.
      La valeur actuellement utilisée sera le premier nombre du jeux des
      nombres premiers
      { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793 }qui est plus grand ou égal que la valeur configurée. La valeur minimale est 200.
      La valeur maximale est 100000 dans PHP < 5.5.6, et 1000000 dans les versions
      ultérieur.
      Les valeurs hors de cette intervalle sont fixées à l'intervalle autorisé.
 
- 
     opcache.max_wasted_percentageint
- 
     
      Le pourcentage maximum de mémoire gaspillée autorisée avant qu'un redémarrage
      ne soit programmé, s'il n'y a pas assez de mémoire disponible.
      La valeur maximale permissible est "50",
      qui est forcé si une valeur plus large est définie.
 
- 
     opcache.use_cwdbool
- 
     
      Si activé, OPcache ajoute le dossier de travail courant à la clé du script,
      éliminant ainsi les collisions possibles entre les fichiers dont le nom
      de base est identique. Le fait de désactiver cette fonctionnalité améliore
      les performances, mais peut casser les applications existantes.
      
- 
     opcache.validate_timestampsbool
- 
     
      Si activé, OPcache va vérifier les mises à jour des scripts toutes les
      opcache.revalidate_freq
      secondes. Lorsque cette directive est désactivée, vous devez réinitialiser
      OPcache manuellement via la fonction opcache_reset(),
      la fonction opcache_invalidate() ou en redémarrant le serveur
      Web pour que les modifications du système de fichiers ne prennent effet.
       Note: 
       
        OPcache peut toujours valider l'horodatage d'un fichier lors de la compilation si les options
        opcache.file_update_protection
        ou opcache.max_file_size
        sont définies sur des valeurs non nulles.
       
       
 
- 
     opcache.revalidate_freqint
- 
     
      La fréquence de vérification du timestamps du script afin de détecter
      les possibles mises à jour, en secondes. La valeur 0fera qu'OPcache vérifiera les mises à jour à chaque requête.
 
      Cette directive de configuration est ignorée si
      opcache.validate_timestamps
      est désactivé.
      
- 
     opcache.revalidate_pathbool
- 
     
      Si désactivé, les fichiers en cache existant utilisant le même
      include_path seront réutilisés.
      Aussi, si un fichier avec le même nom est quelque part ailleurs dans le
      include_path, il ne sera pas trouvé.
      
- 
     
      Si désactivé, tous les commentaires de documentation seront supprimés
      du cache opcode afin de réduire la taille du code optimisé.
      La désactivation de cette directive peut casser des applications
      et des frameworks qui s'appuient sur l'analyse des commentaires
      pour les annotations, comme Doctrine, Zend Framework 2 et PHPUnit.
      
- 
     opcache.fast_shutdownbool
- 
     
      Si activé, une séquence d'arrêt rapide sera utilisé, qui ne libère pas
      chaque bloc alloué, mais s'appuie sur le gestionnaire de mémoire
      Zend Engine pour désallouer le jeux entier des variables de requêtes, en masse.
      
      Cette directive a été supprimé dans PHP 7.2.0. Une variante de la
      séquence d'arrêt rapide a été intégré dans PHP et sera automatiquement
      utilisé si possible.
      
- 
     opcache.enable_file_overridebool
- 
     
      Lorsqu'activé, le cache opcode sera vérifié pour savoir si un fichier
      a déjà été mise en cache lorsque les fonctions file_exists(),
      is_file() et is_readable() sont appelées.
      Ceci peut accroître les performances des applications qui vérifient l'existence
      et la lisibilité des scripts PHP, mais risque de retourner des données
      périmées si
      opcache.validate_timestamps
      est désactivé.
      
- 
     opcache.optimization_levelint
- 
     
      La valeur par défaut consiste à appliquer toutes les optimisations sûres.
      Changer la valeur par défaut est surtout utile pour déboguer/développer l'optimiseur
      (voir aussi opcache.opt_debug_level).
      
- 
     opcache.inherited_hackbool
- 
     
      Cette directive de configuration est ignorée.
      
- 
     opcache.dups_fixbool
- 
     
      Ce hack ne doit être activé que comme solution de contournement des erreurs
      "Cannot redeclare class".
      
- 
     opcache.blacklist_filenamestring
- 
     
      L'endroit de stockage du fichier gérant la liste noire OPcache.
      Un fichier de liste noire est un fichier texte contenant des noms
      de fichiers qui ne doivent pas être accélérés ; un par ligne.
      Les jokers sont autorisés, et les préfixes peuvent également
      être fournis. Les lignes commençant par un point-virgule
      sont vues comme des commentaires et seront donc ignorées.
      
      Un fichier de liste noire simple ressemble à ceci :
      
- 
     opcache.max_file_sizeint
- 
     
      La taille maximale du fichier pouvant être mis en cache, en octets.
      Si vaut 0, tous les fichiers pourront être mise en cache.
 
- 
     opcache.consistency_checksint
- 
     
      Si vaut différent de zéro, OPcache va vérifier la somme de contrôle
      du cache toutes les N requêtes, où N est la valeur de cette directive
      de configuration. Ceci ne doit être activé que lors du débogage, sachant
      qu'il impacte fortement les performances.
      Note: 
       
       Désactivé à partir de PHP 8.1.18 et 8.2.5. Supprimé à partir de PHP 8.3.0.
       
 
- 
     opcache.force_restart_timeoutint
- 
     
      La durée à attendre pour le début d'un redémarrage programmé, si le
      cache n'est pas activé, en seconde. Si ce délai d'attente est atteint,
      alors OPcache imagine que quelque chose se passe mal, et va tuer les
      processus gérant les verrous sur le cache pour permettre un
      redémarrage.
      
      Si
      opcache.log_verbosity_level
      vaut 2 ou plus, un avertissement sera enregistrée dans le journal d'événements
      des erreurs lorsque ce comportement survient.
      
      Cette directive n'est pas supporté sur Windows.
      
- 
     opcache.error_logstring
- 
     
      Le log d'erreurs pour les erreurs OPcache. Une chaîne vide sera vu comme
      stderr, et les erreurs seront envoyées vers la sortie
      d'erreurs standard (qui sera le log des erreurs du serveur Web dans la
      plupart des cas).
 
- 
     opcache.log_verbosity_levelint
- 
     
      Le niveau de verbosité des logs. Par défaut, seules les erreurs fatales
      niveau 0) et les erreurs (niveau 1) seront enregistrées. Les autres
      niveaux disponibles sont les alertes (niveau 2), les messages
      d'information (niveau 3), et les messages de débogage (niveau 4).
      
- 
     opcache.record_warningsbool
- 
     
      Si cette option est activée, OPcache enregistrera les avertissements de compilation
      et les rejouera lors du prochain include, même s'il est servi depuis le cache.
      
- 
     opcache.preferred_memory_modelstring
- 
     
      Le modèle de mémoire préféré pour OPcache, à utiliser. Si laissé vide,
      OPcache va choisir le modèle le plus approprié, ce qui est la meilleure
      façon de faire dans la plupart des cas.
      
      Les valeurs possibles sont mmap,shm,posixetwin32.
 
- 
     opcache.protect_memorybool
- 
     
      Protège la mémoire partagée des écritures non-approuvées pendant l'exécution
      des scripts. Ceci est utile uniquement pour du débogage interne.
      
- 
     opcache.mmap_basestring
- 
     
      La base utilisée pour les segments de mémoire partagée sous Windows.
      Tous les processus PHP doivent lier la mémoire partagée dans le même espace
      d'adresse. L'utilisation de cette directive permet de corriger les erreurs
      "Unable to reattach to base address".
      
- 
     opcache.restrict_apistring
- 
     
      Autorise l'appel aux fonctions de l'API d'OPcache uniquement depuis
      des scripts PHP dont le chemin commence par une chaîne spécifique.
      La valeur par défaut, "", signifie "aucune restriction".
      
- 
     opcache.file_update_protectionstring
- 
     
      Empêche la mise en cache des fichiers datant moins que ce nombre de secondes.
      Ceci protège de la mise en cache des fichiers incomplètement mis à jour.
      Si toutes les mises à jour de fichiers sont atomiques, les performances
      peuvent être augmenter en le définissant à 0.
      Cela permettra de mettre en cache les fichiers immédiatement.
 
- 
     opcache.huge_code_pagesbool
- 
     
      Active ou désactive la copie de code PHP (segment de texte) dans des HUGE PAGES.
      Ceci devrait améliorer les performances, mais nécessite une configuration
      approprié du système d'exploitation.
      Disponible sur Linux à partir de PHP 7.0.0,
      et sur FreeBSD à partir de PHP 7.4.0.
      
- 
     opcache.lockfile_pathstring
- 
     
      Chemin absolue utilisé pour enregistrer les lockfiles partagés (pour *nix uniquement)
      
- 
     opcache.opt_debug_levelstring
- 
     
      Produit un vidage opcode pour déboguer les différents étapes d'optimisation.
      0x10000 affichera les opcodes tel que le compilateur les produit avant qu'aucune
      optimisation se produisent alors que 0x20000 affichera les codes optimisés.
      
- 
     opcache.file_cachestring
- 
     
      Active et définie le répertoire de cache de second niveau. Ceci devrait
      améliorer les performances quand la mémoire SHM est pleine, au redémarrage
      du serveur ou réinitialisation de SMH.
      La valeur par défaut "" désactive la mise en cache basée sur les fichiers.
      
- 
     opcache.file_cache_onlybool
- 
     
      Active ou désactive la mise en cache de l'opcode dans la mémoire partagée.
      Note: 
       
       Antérieur à PHP 8.1.0, désactiver cette directive avec un fichier de
       cache déjà remplis nécessite le vidage manuel du cache.
       
 
- 
     opcache.file_cache_consistency_checksbool
- 
     
      Active ou désactive la validation de la somme de contrôle lorsque le script
      est chargé à partir du cache de fichiers.
      
- 
     opcache.file_cache_fallbackbool
- 
     
      Insinue opcache.file_cache_only=1 pour un certain processus qui a échoué de
      se rattacher à la mémoire partagée (pour Windows uniquement).
      Le cache de fichiers activé explicitement est requis.
      Attention
      
       Désactiver cette option de configuration peut empêcher les processus
       de démarrer, 
       Disabling this configuration option may prevent processes to start,
       et est donc découragé.
       
 
- 
     opcache.validate_permissionbool
- 
     
      Valide les permissions des fichiers mises en cache par rapport à
      l'utilisateur actuel.
      
- 
     opcache.validate_rootbool
- 
     
      Empêche la collision de noms dans les environnements `chroot`ées. Ceci devrait
      être activé dans tous les environnements `chroot`ées pour empêcher l'accès
      aux fichiers en-dehors du chroot.
      
- 
     opcache.preloadstring
- 
     
      Spécifie un script PHP qui sera compilé et exécuté lors du démarrage du serveur,
      et qui peut précharger d'autres fichiers, soit grâce à include
      ou en utilisant la fonction opcache_compile_file(). Toutes
      les entités (par exemple fonctions et classes) définies dans ces fichiers seront
      disponibles aux requêtes prêt à l'emploi, jusqu'à ce que le serveur soit éteint.
      Note: 
       
       Le préchargement n'est pas supporté sur Windows.
       
 
- 
     opcache.preload_userstring
- 
     
      Permet au préchargement d'être exécuté en tant qu'utilisateur système 
      spécifié. Ceci est utile pour les serveurs qui démarrent en tant que root 
      avant de passer à un utilisateur système non privilégié. Le préchargement 
      en tant que root n'est pas autorisé par défaut pour des raisons de sécurité, 
      sauf si cette directive est explicitement définie sur root.
      À partir de PHP 8.3.0, cette directive n'a plus besoin d'être définie afin d'autoriser le préchargement
      lors de l'exécution en tant que root avec CLI SAPI ou phpdbg SAPI.
 
- 
     opcache.cache_idstring
- 
     
      Sur Windows, tous les processus exécutant le même PHP
      SAPI sous le même compte utilisateur ayant le même ID
      de cache partage une instance unique de OPcache.
      La valeur de l'ID de cache peut être choisi librement.
      Astuce
      
       Pour IIS, des pools d'applications différentes peuvent avoir leur propre
       instance OPcache en utilisant la variable d'environnement
       APP_POOL_ID comme opcache.cache_id.
       For IIS, different application pools can have their own OPcache instance
       by using the environment variable APP_POOL_ID asopcache.cache_id.
 
 
- 
     opcache.jitstring|int
- 
     
      Pour un usage typique, cette option accepte une des quatre valeur string suivante :
      
      - disable: Désactivé complètement, ne peut pas
       être activé lors du runtime.
- off:  Désactivé, mais peut être activé lors du runtime.
- 
       tracing/on: Utilise le tracing JIT.
       Activé par défaut et recommandé pour la plupart des utilisateurs.
- function: Utilise le function JIT.
 
      Pour un usage avancé, cette option accepte un entier à 4 chiffre
      CRTO, où les chiffres signifient :
 
       
        - C(Drapeaux d'optimisation spécifique au CPU)
- 
         
          - 0: Désactive les optimisations spécifique de CPU.
- 1: Active l'usage d'AVX, si le CPU le supporte.
 
- R(allocation de registre)
- 
         
          - 0: N'accomplie aucune allocation de registre
- 1: Accomplie des allocations de registre au niveau d'un block.
- 2: Accomplie des allocations de registre globale.
 
- T(trigger/déclencheur)
- 
         
          - 0: Compile toutes les fonctions lors du chargement du script.
- 1: Compile les fonctions lors de leur première exécution.
- 
           2: Profile les fonctions lors de la première requête et compile les fonctions
           les plus chaudes juste après.
- 3: Profile à la volée et compile les fonctions chaudes.
- 4: Actuellement inutilisé.
- 
           5: Utilise le tracing JIT. Profile à la volée et
           compile les traces pour les segments de code chaud.
 
- O(niveau d'optimisation)
- 
         
          - 0: Pas de JIT.
- 1: JIT minimal (appelle les handlers standard de la VM).
- 2: Inline les handlers de la VM.
- 3: Utilise l'inférence de type.
- 4: Utilise un graphe d'appel.
- 5: Optimise le script entier.
 
 Le mode"tracing"corresponds àCRTO = 1254,
      le mode"function"corresponds àCRTO = 1205.
- 
     opcache.jit_buffer_sizeint
- 
     
      La quantité de mémoire partagé réservé pour du code compilé JIT. Une valeur de zéro désactive le JIT.
      Lorsqu'un entier est utilisé,
sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique
comme décrit dans cette
entrée de la FAQ..
- 
     opcache.jit_debugint
- 
     
      Un masque de bit spécifiant quelle sortie de débug de JIT à activer
      Pour les valeurs possibles, consultez » zend_jit.h
      (voir les définitions de macro commençant par ZEND_JIT_DEBUG).
 
- 
     opcache.jit_bisect_limitint
- 
     
      Option de débogage qui désactive la compilation JIT après la compilation d'un certain nombre
      de fonctions.
      Ceci peut être utile pour bisect la source d'une mauvaise compilation JIT.
      Remarque : cette option ne fonctionne que lorsque le déclencheur JIT est défini
      à 0 (compilation au chargement du script) ou 1 (compilation à la première exécution),
      par exemple, opcache.jit=1215.
      Voir plus dans l'option opcache.jit.
 
- 
     opcache.jit_prof_thresholdfloat
- 
     
      Lors de l'utilisation du mode de déclencheur "profile les fonctions lors de la première requête",
      cette limite détermine si une fonction est considéré chaude. Le nombre d'appels à la fonction
      divisé par le nombre d'appel à toutes les fonctions doit être supérieur à cette limite.
      Par exemple, un limite de 0.005 signifie qu'une fonction qui correspond à plus de 0.5% de tout
      les appels sera compilé JIT.
      
- 
     opcache.jit_max_root_tracesint
- 
     
      Nombre maximal de traces racines (root traces). La trace racine est un flux d'exécution prenant
      d'abord un chemin à travers le code, qui est une unité de la compilation JIT. JIT ne compilera
      pas de nouveau code s'il atteint cette limite.
      
- 
     opcache.jit_max_side_tracesint
- 
     
      Nombre maximal de traces adjacentes (side trace) une trace racine peut avoir.
      La trace adjacente est un autre flux d'exécution qui ne  suit pas suit pas le chemin de la trace
      racine compilée. Les traces adjacentes appartenant à la même trace racine ne seront pas compilées
      si elle atteint cette limite.
      
- 
     opcache.jit_max_exit_countersint
- 
     
      Nombre maximal de compteur de sortie de trace adjacente. Ceci limite le nombre total de
      traces adjacentes qu'il peut y avoir, à travers toutes les traces racines.
      
- 
     opcache.jit_hot_loopint
- 
     
      Après combien d'itération une boucle est considéré chaude.
      L'intervalle de valeurs valides est [0,255];
      pour tout paramètre hors de cette plage, par exemple -1 ou 256, la valeur par défaut sera utilisée à la place.
      Spécialement, une valeur nulle désactivera le JIT pour tracer et compiler toutes les boucles.
 
- 
     opcache.jit_hot_funcint
- 
     
      Après combien d'appel une fonction est considéré chaude.
      La plage de valeurs valides est [0,255];
      pour tout paramètre hors de cette plage, par exemple -1 ou 256, la valeur par défaut sera utilisée à la place.
      Spécialement, une valeur nulle désactivera le JIT pour tracer et compiler toutes les fonctions.
 
- 
     opcache.jit_hot_returnint
- 
     
      Après combien de retours un retour est considéré chaud.
      La plage de valeurs valides est [0,255];
      pour tout paramètre hors de cette plage, par exemple -1 ou 256, la valeur par défaut sera utilisée à la place.
      Spécialement, une valeur nulle désactivera le JIT pour tracer et compiler toutes retournes.
 
- 
     opcache.jit_hot_side_exitint
- 
     
      Après combien de sortie, une sortie adjacente est considéré chaude.
      La plage de valeurs valides est [0,255];
      pour tout paramètre hors de cette plage, par exemple -1 ou 256, la valeur par défaut sera utilisée à la place.
      Spécialement, une valeur nulle désactivera le JIT pour tracer et compiler toutes les sorties latérales.
 
- 
     opcache.jit_blacklist_root_traceint
- 
     
      Nombre maximal de tentatives de compilation d'une trace racine avant que celle-ci ne soit exclue.
      
- 
     opcache.jit_blacklist_side_traceint
- 
     
      Nombre maximal de tentatives de compilation d'une trace adjacente avant que celle-ci ne soit exclue.
      
- 
     opcache.jit_max_loop_unrollsint
- 
     
      Nombre maximal de tentative à dérouler une boucle dans une trace adjacente,
      tentant d'atteindre la trace racine et de fermer la boucle extérieur.
      
- 
     opcache.jit_max_recursive_callsint
- 
     
      
      Nombre maximal d'appel récursif déroulé dans une boucle.
      
- 
     opcache.jit_max_recursive_returnsint
- 
     
      
      Nombre maximal de retour récursif déroulé dans une boucle.
      
- 
     opcache.jit_max_polymorphic_callsint
- 
     
      Nombre maximal de tentative à inline un appel polymorphic (dynamique ou méthode).
      Appels au-dessus de cette limité sont traité comme megamorphic et ne sont pas inlined.