Ответ
OPcache (ранее Zend Optimizer+) — это встроенное в ядро PHP расширение для кеширования скомпилированного байт-кода. Его основная задача — радикально повысить производительность PHP-скриптов.
Как это работает:
- При первом запросе PHP компилирует исходный код (
*.phpфайл) в байт-код (opcodes). - OPcache сохраняет этот скомпилированный байт-код в общей памяти (shared memory).
- При последующих запросах к тому же скрипту PHP использует готовый байт-код из памяти, пропуская этапы чтения с диска и компиляции.
Ключевые настройки в php.ini:
zend_extension=opcache.so ; или opcache.dll на Windows
opcache.enable=1
opcache.memory_consumption=128 ; Выделяемая память под кеш (в МБ)
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2 ; Как часто проверять файлы на изменения (в секундах)
opcache.preload=/path/to/preload.php ; Предзагрузка критических классов
Практическое значение: Без OPcache фреймворки вроде Laravel или Symfony работали бы неприемлемо медленно, так как при каждом запросе компилируются сотни файлов. OPcache — обязательный компонент для production-окружения. Для разработки opcache.revalidate_freq часто ставят в 0, а opcache.validate_timestamps включают, чтобы изменения в коде применялись сразу.