LaravelConf Taiwan 2019 announcement

opcache_compile_file

(PHP 5 >= 5.5.5, PHP 7, PECL ZendOpcache > 7.0.2)

opcache_compile_fileCompile et met en cache un script PHP sans l'exécuter

Description

opcache_compile_file ( string $file ) : bool

Cette fonction compile un script PHP et l'ajoute au cache d'opcode sans l'exécuter. Ceci peut être utilisé pour remplir un cache après un redémarrage de serveur en précachant les fichiers qui vont être amenés à être utilisés.

Liste de paramètres

file

Le chemin vers le fichier PHP à compiler et mettre en cache.

Valeurs de retour

Retourne TRUE si file a été compilé avec succès ou FALSE si une erreur survient.

Erreurs / Exceptions

Si file ne peut être chargé ou compilé, une erreur de type E_WARNING est renvoyée. Vous pouvez utiliser @ pour la supprimer.

Voir aussi

add a note add a note

User Contributed Notes 2 notes

up
9
IceNV
1 year ago
Be aware that opcache will only compile and cache files older than the script execution start.

For instance, if you use a script to generate cache files (e.g. you don't have access to shmop and rely on opcache for in-memory data caching instead), opcache_compile_file will not include the generated file in the cache, because its modification time is after the script start.

The workaround is to use touch() to set a date before the script execution date, then opcache will compile and cache the generated file.
up
-24
cslistener
4 years ago
<?php
/**
* Get files that specified suffix
* @param $path
* @param array $files
* @return array
*/
// http://www.apieye.com/528.html
function getfiles( $path , &$files = array() ) {
    if ( !
is_dir( $path ) ) return null;
   
$handle = opendir( $path );
    while (
false !== ( $file = readdir( $handle ) ) ) {
        if (
$file != '.' && $file != '..' ) {
           
$path2 = $path . '/' . $file;
            if (
is_dir( $path2 ) ) {
               
getfiles( $path2 , $files );
            } else {
                if (
preg_match( "/\.(php|php5)$/i" , $file ) ) {
                   
$files[] = $path2;
                }
            }
        }
    }
    return
$files;
}
$files = getfiles('/png/www/example.com/public_html/app/wordpress');
$br = (php_sapi_name() == "cli") ? "\n" : "<br />";
foreach(
$files as $file){
 
opcache_compile_file($file);
  echo
$file.$br;
}
To Top