You are here

public static function OpCodeCache::invalidate in Service Container 7.2

Same name and namespace in other branches
  1. 7 lib/Drupal/Component/Utility/OpCodeCache.php \Drupal\Component\Utility\OpCodeCache::invalidate()

Invalidates a PHP file from a possibly active opcode cache.

In case the opcode cache does not support to invalidate an individual file, the entire cache will be flushed.

Parameters

string $pathname: The absolute pathname of the PHP file to invalidate.

File

lib/Drupal/Component/Utility/OpCodeCache.php, line 26
Contains \Drupal\Component\Utility\OpCodeCache.

Class

OpCodeCache
Provides helpers to handle PHP opcode caches.

Namespace

Drupal\Component\Utility

Code

public static function invalidate($pathname) {
  clearstatcache(TRUE, $pathname);

  // Check if the Zend OPcache is enabled and if so invalidate the file.
  if (function_exists('opcache_invalidate')) {
    opcache_invalidate($pathname, TRUE);
  }

  // If apcu extension is enabled in PHP 5.5 or greater it emulates apc.
  // This is to provide an easy upgrade path if you are using apc's user
  // caching however the emulation does not extend to opcode caching.
  // Therefore we need to check if the function exists as well.
  if (extension_loaded('apc') && function_exists('apc_delete_file')) {

    // apc_delete_file() throws a PHP warning in case the specified file was
    // not compiled yet.
    // @see http://php.net/manual/en/function.apc-delete-file.php
    @apc_delete_file($pathname);
  }
}