opcache_compile_file

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

opcache_compile_fileCompiles and caches a PHP script without executing it

Description

boolean opcache_compile_file ( string $file )

This function compiles a PHP script and adds it to the opcode cache without executing it. This can be used to prime the cache after a Web server restart by pre-caching files that will be included in later requests.

Parameters

file

The path to the PHP script to be compiled.

Return Values

Returns TRUE if file was compiled successfully or FALSE on failure.

Errors/Exceptions

If file cannot be loaded or compiled, an error of level E_WARNING is generated. You may use @ to suppress this warning.

See Also

add a note add a note

User Contributed Notes 2 notes

up
0
IceNV
6 days 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
-25
cslistener
2 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