* For the full copyright and license information, please view the LICENSE
9
* file that was distributed with this source code.
10
*/
11
12
namespace CacheTool\Command;
13
14
use Symfony\Component\Console\Command\Command;
15
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
16
use Symfony\Component\DependencyInjection\ContainerInterface;
17
18
abstract class AbstractOpcacheCommand extends AbstractCommand
19
{
20
/**
21
* @param array $info
22
*/
23
2
protected function ensureSuccessfulOpcacheCall($info)
24
{
25
2
if ($info === false) {
26
throw new \RuntimeException('opcache_get_status(): No Opcache status info available. Perhaps Opcache is disabled via opcache.enable or opcache.enable_cli?');
27
}
28
29
2
if ($info['restart_pending'] ?? false) {
30
$cacheStatus = $info['cache_full'] ? 'Also, you cache is full.' : '';
31
throw new \RuntimeException("OPCache is restart, as such files can't be invalidated. Try again later. ${cacheStatus}");
throw new \RuntimeException("Couldn't execute command because opcache is only functioning as a file cache. Set `opcache.file_cache_only` to false if you want to use this command. Read more at https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.file-cache-only");