Skip to content

Commit 0e4af72

Browse files
fsevestredbu
authored andcommitted
Add getCurrentItem method in MenuHelper (#293)
Update for knp menu 2.2 - add getCurrentItem method in MenuHelper
1 parent 9ca74ce commit 0e4af72

File tree

4 files changed

+31
-2
lines changed

4 files changed

+31
-2
lines changed

Resources/config/menu.xml

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
<argument type="service" id="knp_menu.renderer_provider" />
3232
<argument type="service" id="knp_menu.menu_provider" />
3333
<argument type="service" id="knp_menu.manipulator" />
34+
<argument type="service" id="knp_menu.matcher" />
3435
</service>
3536

3637
<service id="knp_menu.matcher" class="%knp_menu.matcher.class%" />

Templating/Helper/MenuHelper.php

+12
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,18 @@ public function isAncestor(ItemInterface $item, $depth = null)
105105
return $this->matcher->isAncestor($item, $depth);
106106
}
107107

108+
/**
109+
* Returns the current item of a menu.
110+
*
111+
* @param ItemInterface|array|string $menu
112+
*
113+
* @return ItemInterface|null
114+
*/
115+
public function getCurrentItem($menu)
116+
{
117+
return $this->helper->getCurrentItem($menu);
118+
}
119+
108120
/**
109121
* @return string
110122
*/

Tests/Templating/MenuHelperTest.php

+16
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,22 @@ public function testIsAncestor()
124124
$this->assertFalse($helper->isAncestor($menu));
125125
}
126126

127+
public function testGetCurrentItem()
128+
{
129+
$menu = $this->getMock('Knp\Menu\ItemInterface');
130+
131+
$helperMock = $this->getHelperMock(array('getCurrentItem'));
132+
$helperMock->expects($this->any())
133+
->method('getCurrentItem')
134+
->with('default')
135+
->will($this->returnValue($menu))
136+
;
137+
138+
$helper = new MenuHelper($helperMock, $this->getMatcherMock(), $this->getManipulatorMock());
139+
140+
$this->assertEquals($menu, $helper->getCurrentItem('default'));
141+
}
142+
127143
private function getHelperMock(array $methods = array())
128144
{
129145
return $this->getMockBuilder('Knp\Menu\Twig\Helper')

composer.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
}
2020
],
2121
"require": {
22-
"knplabs/knp-menu": "~2.1",
22+
"knplabs/knp-menu": "~2.2",
2323
"symfony/framework-bundle": "~2.3|~3.0"
2424
},
2525
"require-dev": {
@@ -31,7 +31,7 @@
3131
},
3232
"extra": {
3333
"branch-alias": {
34-
"dev-master": "2.1.x-dev"
34+
"dev-master": "2.2.x-dev"
3535
}
3636
}
3737
}

0 commit comments

Comments
 (0)