/**
  * Gets the 'knp_menu.matcher' service.
  *
  * This service is shared.
  * This method always returns the same instance of the service.
  *
  * @return \Knp\Menu\Matcher\Matcher A Knp\Menu\Matcher\Matcher instance.
  */
 protected function getKnpMenu_MatcherService()
 {
     $this->services['knp_menu.matcher'] = $instance = new \Knp\Menu\Matcher\Matcher();
     $instance->addVoter($this->get('knp_menu.voter.router'));
     return $instance;
 }
Beispiel #2
0
 public function mainBreadcrumb()
 {
     $menu = $this->container->get('newscoop_newscoop.menu.main');
     $matcher = new \Knp\Menu\Matcher\Matcher();
     $matcher->addVoter(new \Knp\Menu\Matcher\Voter\UriVoter($_SERVER['REQUEST_URI']));
     $treeIterator = new \RecursiveIteratorIterator(new \Knp\Menu\Iterator\RecursiveItemIterator(new \ArrayIterator(array($menu))), \RecursiveIteratorIterator::SELF_FIRST);
     $iterator = new \Knp\Menu\Iterator\CurrentItemFilterIterator($treeIterator, $matcher);
     // Set Current as an empty Item in order to avoid exceptions on knp_menu_get
     $current = new \Knp\Menu\MenuItem('', $this->factory);
     foreach ($iterator as $item) {
         $item->setCurrent(true);
         $current = $item;
         break;
     }
     return $current;
 }