paramInterpreter = $paramInterpreter; } /** * {@inheritdoc} * @return array * @throws \InvalidArgumentException */ public function evaluate(array $data) { $params = isset($data['param']) ? $data['param'] : []; if (!is_array($params)) { throw new \InvalidArgumentException('Layout argument parameters are expected to be an array.'); } $result = []; foreach ($params as $paramKey => $paramData) { if (!is_array($paramData)) { throw new \InvalidArgumentException('Parameter data of layout argument is expected to be an array.'); } $result[$paramKey] = $this->paramInterpreter->evaluate($paramData); } return $result; } }