/**
  * Returns an escaped absolute URL for the given page
  *
  * @param  \Zend\Navigation\AbstractPage $page  page to get URL from
  * @return string
  */
 public function url(AbstractPage $page)
 {
     $href = $page->getHref();
     if (!isset($href[0])) {
         // no href
         return '';
     } elseif ($href[0] == '/') {
         // href is relative to root; use serverUrl helper
         $url = $this->getServerUrl() . $href;
     } elseif (preg_match('/^[a-z]+:/im', (string) $href)) {
         // scheme is given in href; assume absolute URL already
         $url = (string) $href;
     } else {
         throw new \RuntimeException("Relative url cannot be rendered.");
     }
     return $this->_xmlEscape($url);
 }
 /**
  * @param  array|Config $page
  * @return AbstractPage
  */
 public function addPage($page)
 {
     if (is_array($page) || $page instanceof Config) {
         if (isset($page['route']) && !isset($page['type'])) {
             $page['type'] = "Bundle\\ZendNavigationBundle\\Page\\RouterPage";
         } else {
             if (isset($page['uri']) && !isset($page['uri'])) {
                 $page['type'] = "Bundle\\ZendNavigationBundle\\Page\\UriPage";
             }
         }
         $page = AbstractPage::factory($page);
     }
     parent::addPage($page);
     return $this;
 }
 public function toArray()
 {
     return array_merge(parent::toArray(), array('route' => $this->route, 'params' => $this->params));
 }