Функция opcache_is_script_cached в php5.5.11

Недавно я задал вопрос "есть ли способ найти, был ли скрипт запущен opCache", и не смог найти ответ. Прямо сейчас, глядя на журнал изменений Php5.5.11, я обнаружил, что новая функция

OPCache:

Добавлена ​​функция opcache_is_script_cached().

был добавлен. Основываясь на имени, он делает именно то, что я хочу, но проблема в том, что я не могу найти какую-либо документацию по этой функции.

Может кто-нибудь сказать мне точно, что эта функция делает? Пожалуйста, воздержитесь от диких догадок.

3 ответа

Решение

Прочитав этот пост (и некоторые другие примечания к руководству по PHP), я понял, что эту функцию еще предстоит документировать. В любом случае, недавно я потратил немного времени, чтобы добавить эту функцию в документацию PHP:

http://php.net/manual/en/function.opcache-is-script-cached.php

Выдержка из руководства:

opcache_is_script_cached - сообщает, кэшируется ли скрипт в OPCache.

boolean opcache_is_script_cached ( string $file )

Эта функция проверяет, был ли PHP-скрипт кэширован в OPCache. Это может быть использовано для более легкого обнаружения "потепления" кеша для конкретного скрипта.

Возвращает TRUE если $file кэшируется в OPCache, FALSE иначе.

Вы найдете исходный код этой функции в нижней части файла zend_accellerator_module.c, и он, похоже, делает то, что вы хотите. Похоже, что он принимает один аргумент - имя файла сценария, который вы проверяете. Код в filename_is_in_cache Кажется, он обрабатывает случаи, когда один и тот же файл указан разными строками ('filename.php' vs '/var/www/filename.php'), но вы можете копать глубже или проверить самостоятельно, чтобы проверить.

Кроме того, вот тестовый пример, показывающий пример, хотя он очень минимален.

На самом деле документированная функция opcache_get_status делает то, что вы хотите. Просто позвоните, передав true параметр в нем и проверка scripts раздел в возвращаемом массиве.

Другие вопросы по тегам