public function query($sql, RowMapper $mapper, $arguments = null) { $records = array(); $sql = $this->prepareArgs($sql, $arguments); $results = $this->driver->query($sql, $this->getConnection()); while ($row = $this->driver->resultSetObject($results)) { $record = $mapper->mapRow($row); Args::notNull($record, 'row mapper return value'); array_push($records, $record); } return $records; }
/** * Set the current page * @param mixed $page An instance of web page or an Identifier for a web page * @todo add page params */ public function setPage($page) { Args::notNull($page, 'page'); if ($page instanceof Identifier) { if ($page->of(WebPage::getIdentifier())) { $target = new PageRequestTarget($page); } else { throw new \InvalidArgumentException("Expected identifier to be for a web page"); } } else { if ($page instanceof WebPage) { PageMap::get()->addOrUpdate($page); $target = new PageInstanceRequestTarget($page); } else { throw new \InvalidArgumentException(sprintf("setPage expects an identifier for a web page or an instance of a web page and not a %s", get_class($page))); } } if ($this->getRequestCycle()->containsTarget(ListenerRequestTarget::getIdentifier())) { $url = $this->getRequestCycle()->generateUrl($target); $this->getRequestCycle()->addTarget(new RedirectRequestTarget($url)); } else { $this->getRequestCycle()->addTarget($target); } }