opcache在运行时使用file_put_contents函数创建的php文件面临的问题

时间:2019-01-07 08:51:32

标签: php opcache

我有一个业务逻辑,我想在运行时生成PHP代码并将其放入临时文件,然后将它包括/ require /(编译为opcache)并删除该文件。我正在使用opcache,并希望在删除文件之前编译/缓存此新生成的代码。

每当我手动创建此文件并通过opcache对其进行编译/缓存时,opcache_is_script_cached命令都会为true。但是,当我在运行时创建文件时,opcache_is_script_cached命令会给出false。

<?php
if(!opcache_is_script_cached('/var/tmp/somefile.tmp')) {
    file_put_contents('/var/tmp/somefile.tmp', file_get_contents('var/www/html/somefolder/somefile.php'));
    opcache_compile_file('/var/tmp/somefile.tmp');
    unlink('/var/tmp/somefile.tmp');
}

一旦执行了该代码并将其缓存到操作缓存中,就一定不要进入“如果条件”并且每次都一次又一次地生成代码文件。

0 个答案:

没有答案