/** * Default XML query execution path * @return mixed */ function execute() { $result = parent::execute(); if (empty($result)) { return null; } $reduce = function ($val) { if (is_scalar($val)) { return $val; } elseif ($val instanceof \DOMDocument) { return $val; } elseif ($val instanceof \SimpleXMLElement) { return $val; } return $val; }; if (empty($this['xpath'])) { return $reduce($result[0]); } if (qtil\ArrayUtil::isMultiObject($result->toArray()) && count($result) == 1) { $val = $result[$result->keys()[0]]; return new qinq\Collection($val); } return $result->filter(); }
/** * Default INI query execution method * @return \qinq\Collection */ function execute() { $result = parent::execute(); return new qinq\Collection($result[0]); }
/** * Tries home chain and fail-over to object query * @param string $name * @param array $arguments * @return \xral\Resource\JSON\Query */ function __call($name, array $arguments) { try { parent::__call($name, $arguments); } catch (\BadMethodCallException $e) { call_user_func_array([$this->query, $name], $arguments); } return $this; }