public function __toString()

in src/Facebook/InstantArticles/Transformer/Warnings/InvalidSelector.php [51:84]


    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}}";
    }