My workaround to clear cache via CLI is create a bash script like this:
#!/bin/bash
WEBDIR=/var/www/html/
RANDOM_NAME=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13)
echo "<?php opcache_reset(); ?>" > ${WEBDIR}${RANDOM_NAME}.php
curl http://localhost/${RANDOM_NAME}.php
rm ${WEBDIR}${RANDOM_NAME}.php
put it in /usr/local/bin/opcache-clear and make it executable.
When I want to clear cache I simply run "opcache-clear" inside terminal.opcache_reset
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
opcache_reset
Референца за `function.opcache-reset.php` со подобрена типографија и навигација.
opcache_reset
(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL ZendOpcache >= 7.0.0)
opcache_reset — (PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL ZendOpcache >= 7.0.0)
= NULL
Ги ресетира содржините на кешот на опкод opcache_reset()Оваа функција го ресетира целиот кеш на опкод. По повикувањето на
Параметри
Оваа функција нема параметри.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true , сите скрипти ќе бидат повторно вчитани и повторно анализирани следниот пат кога ќе бидат повикани. Оваа функција го ресетира само кешот во меморија, не и кешот на датотеки. false ако кешот на опкод беше ресетиран, или opcache_get_status()).
Види Исто така
- opcache_invalidate() - Онеспособува кеширана скрипта
- opcache_get_status() ако кешот на опкод е оневозможен или рестартирањето е во тек или во процес (види
Белешки од корисници 4 белешки
It should be mentioned that opcache_reset() does not reset cache when executed via cli.
So `php -r "var_dump(opcache_reset());"` outputs "true" but doesn't clean cache. Make file, access it via http - and cache is clean.In some (most?) systems PHP's CLI has a separate opcode cache to the one used by the web server or PHP-FPM process, which means running opcache_reset() in the CLI won't reset the webserver/fpm opcode cache, and vice-versa.For longer php scripts: opcache_reset() will obtain a lock and it will reset the cache only after the script has ended, after which the lock is released.
Calling opcache_reset() multiple times or any other opcache manipulation method, like opcache_invalidate(), after calling opcache_reset() in a single script is not useful: while opcache_reset() holds the lock, other opcache methods will return false and they will have zero effect on the cache.
Although the opcache manipulation methods have no effect during this lock, opcache does recache scripts corresponding to the opcache.revalidate_freq setting, provided that opcache.validate_timestamps is switched on.
To keep the cache up to date, use opcache_invalidate() when modifying single php files. Use opcache_reset() for bigger changes and only at the end of a php script.