public function data($name, $value = null) { $first = $this->qp->eq(0); $hash = spl_object_hash($first->get(0)); if (!isset(self::$data[$hash])) { self::$data[$hash] = array(); // Import any data-* attributes and store as element data foreach ($first->attr() as $attrName => $attrValue) { if (substr($attrName, 0, 5) === 'data-') { self::$data[$hash][substr($attrName, 5)] = $attrValue; } } } if ($value === null) { return isset(self::$data[$hash][$name]) ? self::$data[$hash][$name] : null; } self::$data[$hash][$name] = $value; return $this->qp; }
/** * Handles reads of properties not defined by Query * Will delegate to the wrapped QueryPath query * * @param $method * @param $args * @return Query|mixed */ public function __get($name) { if (is_numeric($name)) { return $this->wrappedQuery->get($name); } if (!property_exists($this->wrappedQuery, $name)) { throw new Exception('Invalid property get "' . $name . '"'); } $result = $this->wrappedQuery->{$name}; if ($result instanceof QueryPathQueryInterface) { return $this->createQuery($result); } return $result; }