You are here

public function RulesExtendable::rebuildCache in Rules 7.2

Allows items to add something to the rules cache.

1 call to RulesExtendable::rebuildCache()
RulesAbstractPlugin::rebuildCache in includes/rules.core.inc
Add in the data provided by the info hooks to the cache.
1 method overrides RulesExtendable::rebuildCache()
RulesAbstractPlugin::rebuildCache in includes/rules.core.inc
Add in the data provided by the info hooks to the cache.

File

includes/rules.core.inc, line 389
Rules base classes and interfaces needed for any rule evaluation.

Class

RulesExtendable
Base class for RulesExtendables.

Code

public function rebuildCache(&$itemInfo, &$cache) {

  // Speed up setting up items by caching the faces methods.
  if (!empty($itemInfo['extenders'])) {

    // Apply extenders and overrides.
    $itemInfo += array(
      'overrides' => array(),
    );
    foreach ($itemInfo['extenders'] as $face => $data) {
      $data += array(
        'file' => array(),
      );
      if (isset($data['class'])) {
        $this
          ->extendByClass($face, $data['class'], $data['file']);
      }
      elseif (isset($data['methods'])) {
        $this
          ->extend($face, $data['methods'], $data['file']);
      }
    }
    foreach ($itemInfo['overrides'] as $data) {
      $data += array(
        'file' => array(),
      );
      $this
        ->override($data['methods'], $data['file']);
    }
    $itemInfo['faces_cache'] = array(
      $this->facesMethods,
      $this->facesIncludes,
      $this->faces,
    );

    // We don't need that any more.
    unset($itemInfo['extenders'], $itemInfo['overrides']);
  }
}