public read ( $expression, |
||
$accessor |
public function read($expression, PropertyAccessor $accessor)
{
if (is_array($this->content)) {
$expression = preg_replace('/^root/', '', $expression);
} else {
$expression = preg_replace('/^root./', '', $expression);
}
// If root asked, we return the entire content
if (strlen(trim($expression)) <= 0) {
return $this->content;
}
return $accessor->getValue($this->content, $expression);
}
public function evaluate(Json $json, $expression) { if ($this->evaluationMode === 'javascript') { $expression = str_replace('->', '.', $expression); } try { return $json->read($expression, $this->accessor); } catch (\Exception $e) { throw new \Exception("Failed to evaluate expression '{$expression}'"); } }