You are here

class OpCodeCache in Service Container 7

Same name and namespace in other branches
  1. 7.2 lib/Drupal/Component/Utility/OpCodeCache.php \Drupal\Component\Utility\OpCodeCache

Provides helpers to handle PHP opcode caches.

Hierarchy

Expanded class hierarchy of OpCodeCache

File

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

Namespace

Drupal\Component\Utility
View source
class OpCodeCache {

  /**
   * 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.
   *
   * @param string $pathname
   *   The absolute pathname of the PHP file to invalidate.
   */
  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);
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
OpCodeCache::invalidate public static function Invalidates a PHP file from a possibly active opcode cache.