/** * @return string */ public function __toString() { if (isset($this->context)) { $reflection = new \ReflectionClass(get_class($this->context)); $class_name = $reflection->getShortName(); } else { $class_name = 'no context provided'; } if (isset($this->rule)) { $reflection = new \ReflectionClass(get_class($this->rule)); $rule_name = $reflection->getShortName(); } else { $rule_name = 'no rule provided'; } $has_properties = false; $str_properties = ''; foreach ($this->rule->getProperties() as $name => $value) { if (!$has_properties) { $str_properties = ''; } else { $str_properties = $str_properties . ','; } $reflection = new \ReflectionClass(get_class($value)); $value_name = $reflection->getShortName(); $str_properties = $str_properties . ' ' . $name . '=' . $value_name; } return "Invalid selector for fields ({$this->fields}). " . "The node being transformed was <{$this->node->nodeName}> in the " . "context of {$class_name} within the Rule {$rule_name} with these " . "properties: {{$str_properties}}"; }