Возникла проблема с opcache для php-файла, созданного во время выполнения с помощью функции file_put_contents - PullRequest
0 голосов
/ 07 января 2019

У меня есть бизнес-логика, в которой я хочу сгенерировать код 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');
}

Как только этот код выполняется и кэшируется в opcache, он не должен входить в условие "if" и генерировать файл кода снова и снова каждый раз.

...