Существует страница о предварительной загрузке в руководстве, в которой явно упоминается этот сценарий. :
Кроме того, предварительная загрузка полезна только тогда, когда существует постоянный процесс от одного запроса к другому. Это означает, что, хотя он может работать в сценарии CLI, если включен opcache, в целом это бессмысленно.
Чтобы включить его, вы должны установить что-то вроде этого в вашем php.ini:
opcache.enable_cli=1
opcache.file_cache=/some/dir/somewhere
opcache.file_cache_only=1
opcache.preload=/path/to/preload.php
Если вы настроите это и запустите сценарий CLI, будет выполнен сценарий предварительной загрузки в /path/to/preload.php
, и любое использование include, include_once, require, require_once или opcache_compile_file() вызовет сохранение скомпилированных кодов операций в /some/dir/somewhere
.
Когда вы запустите второй скрипт CLI, он сможет использовать эти скомпилированные коды операций, но он не будет знать, что предварительная загрузка уже выполнена. Таким образом, все, что вы поместите в preload.php, в любом случае будет выполняться при каждой загрузке скрипта. Вам нужно будет справиться с этим вручную, например. вызвав opcache_is_script_cached.
Сложность использования всего этого, вероятно, превышает выгоду для большинства вариантов использования.
person
IMSoP
schedule
09.05.2021