Example #1
0
 /**
  * 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();
 }
Example #2
0
 /**
  * Default INI query execution method
  * @return \qinq\Collection
  */
 function execute()
 {
     $result = parent::execute();
     return new qinq\Collection($result[0]);
 }
Example #3
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;
 }