public function testFetchHydratedSingle() { $finder = Finder::comment(); $schema = new Schemas\Infered(); $conn = new \PDO('sqlite::memory:'); $statement = $conn->query("SELECT 1 AS id, 5 AS post_id, 'comm doido' AS text"); $statement->setFetchMode(\PDO::FETCH_NUM); $entities = $schema->fetchHydrated($finder, $statement); $entities->rewind(); $one = $entities->current(); $entities->next(); $this->assertEquals(null, $entities->current()); $this->assertEquals(1, $one->id); $this->assertEquals('comm doido', $one->text); }
protected function fetchSingle(Finder $finder, PDOStatement $statement) { $name = $finder->getName(); $row = $statement->fetch(PDO::FETCH_OBJ); if (!$row) { return false; } $entities = new SplObjectStorage(); $entities[$row] = array('name' => $name, 'table_name' => $name, 'id' => $row->id, 'cols' => $this->extractColumns($row, $name)); return $entities; }
public function __call($name, $children) { $finder = Finder::__callstatic($name, $children); $finder->setMapper($this); return $finder; }
public function setNext(Finder $finder) { $finder->setParent($this); $this->next = $finder; }