You are here

public function RuleExpression::__construct in Rules 8.3

Constructs a new class instance.

Parameters

array $configuration: A configuration array containing information about the plugin instance.

string $plugin_id: The plugin_id for the plugin instance.

array $plugin_definition: The plugin implementation definition.

\Drupal\rules\Engine\ExpressionManagerInterface $expression_manager: The rules expression plugin manager.

\Drupal\Core\Logger\LoggerChannelInterface $logger: The Rules debug logger channel.

Overrides ExpressionBase::__construct

File

src/Plugin/RulesExpression/RuleExpression.php, line 78

Class

RuleExpression
Provides a rule, executing actions when conditions are met.

Namespace

Drupal\rules\Plugin\RulesExpression

Code

public function __construct(array $configuration, $plugin_id, array $plugin_definition, ExpressionManagerInterface $expression_manager, LoggerChannelInterface $logger) {
  parent::__construct($configuration, $plugin_id, $plugin_definition);
  $configuration += [
    'conditions' => [],
    'actions' => [],
  ];

  // Per default the outer condition container of a rule is initialized as
  // conjunction (AND), meaning that all conditions in it must evaluate to
  // TRUE to fire the actions.
  $this->conditions = $expression_manager
    ->createInstance('rules_and', $configuration['conditions']);
  $this->conditions
    ->setRoot($this
    ->getRoot());
  $this->actions = $expression_manager
    ->createInstance('rules_action_set', $configuration['actions']);
  $this->actions
    ->setRoot($this
    ->getRoot());
  $this->expressionManager = $expression_manager;
  $this->rulesDebugLogger = $logger;
}