-
[BC break] Deprecated the methods
createFromArray
andcreateFromNode
in the MenuFactory and removed them fromKnp\Menu\FactoryInterface
. UseKnp\Menu\Loader\ArrayLoader
andKnp\Menu\Loader\NodeLoader
instead. -
[BC break] Deprecated the methods
moveToPosition
,moveToFirstPosition
,moveToLastPosition
,moveChildToPosition
,callRecursively
,toArray
,getPathAsString
andgetBreadcrumbsArray
in the MenuItem and removed them fromKnp\Menu\ItemInterface
. UseKnp\Menu\Util\MenuManipulator
instead. -
Made the RouterVoter comaptible with SensioFrameworkExtraBundle param converters
-
Added the possibility to match routes using a regex on their name in the RouterVoter
-
[BC break] Refactored the RouterVoter to make it more flexible The way to pass routes in the item extras has changed.
Before:
'extras' => array( 'routes' => array('foo', 'bar'), 'routeParameters' => array('foo' => array('id' => 4)), )
After:
'extras' => array( 'routes' => array( array('route' => 'foo', 'parameters' => array('id' => 4)), 'bar', ) )
The old syntax is kept until the final release, but using it will trigger a E_USER_DEPRECATED error.
- [BC break] Refactored the way to mark items as current
setCurrentUri
,getCurrentUri
andgetCurrentItem
have been removed from the ItemInterface. Determining the current items is now delegated to a matcher, and the default implementation uses voters to apply the matching. Getting the current items can be done thanks to the CurrentItemFilterIterator. - [BC break] Changed the format of the breadcrumb array
Instead of storing the elements with the label as key and the uri as value
the array now stores an array of array elements with 3 keys:
label
,uri
anditem
.
- Updated the Silex service provider for the change in the interface
- Added the children attributes and the extras in the array export
- Marked
Knp\Menu\ItemInterface::getCurrentItem
as deprecated - Added a recursive filter iterator keeping only displayed items
- Added a filter iterator keeping only current items
- Added a recursive iterator for the item
- Fixed building an array of breadcrumbs when a label has only digits
- Added a way to mark a label as safe
- Refactored the ListRenderer to be consistent with the TwigRenderer and provide the same extension points
- Added a way to attach extra data to an item
- Removed unnecessary optimization in the TwigRenderer
- Added some whitespace control in the Twig template to ensure an empty rendering is really empty
- [BC break] Use the childrenAttributes for the root instead of the attributes
- Made the default options configurable for the TwigRenderer
- Added the support for menu registered as factory in PimpleProvider
- Added a way to use the options in
knp_menu_get()
in Twig templates - Added an array of options for the MenuProviderInterface
- Added a template to render an ordered list
- Refactored the template a bit to make it easier to use an ordered list
- Allow omitting the name of the child in
fromArray
(the key is used instead)
- Add composer.json file
- Added more flexible list element blocks
- Add support for attributes on the children collection.
- Added a default renderer
- Added a ChainProvider for the menus.
- Added the Silex extension
- Added a RouterAwareFactory
- Added an helper to be able to reuse the logic more easily for other templating engines
- Added a way to retrieve an item using a path in a menu tree
- Changed the toArray method to use a depth instead of simply using a boolean flag
- Refactored the export to array and the creation from an array
- Added better support for encoding problems when escaping a string in the ListRenderer
- Added a Twig renderer
- Added missing escaping in the ListRenderer
- Renamed some methods in the ItemInterface
- Removed the configuration of the current item as link from the item
- Refactored the ListRenderer to use options
- Changed the interface of callRecursively
- Refactored the NodeInterface to be consistent
- Moved the creation of the item to the factory
- Added a Twig extension to render the menu easily
- Changed the menu provider interface with a pimple-based implementation
- Added a renderer provider to get a renderer by name and a Pimple-based implementation
- Removed the renderer from the menu
- Removed the num in the item by refactoring isLast and isFirst
- Changed the RendererInterface to accept an array of options to be more flexible
- Added an ItemInterface
- Initial import of KnpMenuBundle decoupled classes with a new namespace