175 lines
7.2 KiB
Markdown
175 lines
7.2 KiB
Markdown
|
## 3.2 (2021-05-28)
|
||
|
|
||
|
* Remove Symfony 6 deprecations
|
||
|
* Enforce phpstan rules (max level)
|
||
|
|
||
|
## 3.1 (2019-12-01)
|
||
|
|
||
|
* Allowed Symfony 5 components
|
||
|
* Removed support for unsupported Symfony versions (4.0 and 4.1)
|
||
|
* Allowed Twig 3
|
||
|
|
||
|
## 3.0 (2019-09-02)
|
||
|
|
||
|
* Raised PHP requirements
|
||
|
* [BC break] Enforced strong types on all interfaces and classes
|
||
|
* [BC break] Removed deprecated features. Specifically, MenuFactory and MenuItem are not accepting a `null` name anymore
|
||
|
|
||
|
## 2.4 (2019-07-29)
|
||
|
|
||
|
* Fixed Twig deprecations
|
||
|
* Switched to namespaced Twig
|
||
|
* Fixed sprintf use
|
||
|
|
||
|
## 2.3 (2017-11-18)
|
||
|
|
||
|
* Deprecated the Silex 1 KnpMenuServiceProvider. Use the `knplabs/knp-menu-silex` package instead.
|
||
|
* Fixed RouteVoter to also match on non-string request arguments like integers as long as both string representations are identical.
|
||
|
* Add Symfony 4 support
|
||
|
|
||
|
## 2.2 (2016-09-22)
|
||
|
|
||
|
* Added a new function to twig: `knp_menu_get_current_item`
|
||
|
|
||
|
## 2.1.1 (2016-01-08)
|
||
|
|
||
|
* Made compatible with Symfony 3
|
||
|
|
||
|
## 2.1.0 (2015-09-20)
|
||
|
|
||
|
* Added a new function to twig: `knp_menu_get_breadcrumbs_array`
|
||
|
* Added a new filter to twig: `knp_menu_as_string`
|
||
|
* Added 2 new tests to twig: `knp_menu_current`, `knp_menu_ancestor`
|
||
|
* Made the templates compatible with Twig 2
|
||
|
* Add menu and renderer providers supporting any ArrayAccess implementations. The
|
||
|
Pimple-based providers (supporting only Pimple 1) are dperecated in favor of these
|
||
|
new providers.
|
||
|
|
||
|
## 2.0.1 (2014-08-01)
|
||
|
|
||
|
* Fixed voter conventions on RouteVoter
|
||
|
|
||
|
## 2.0.0 (2014-07-18)
|
||
|
|
||
|
* [BC break] Clean code and removed the BC layer
|
||
|
|
||
|
## 2.0.0 beta 1 (2014-06-19)
|
||
|
|
||
|
* [BC break] Added the new `Integration` namespace and removed the `Silex` one.
|
||
|
* Added a new Voter based on regular expression: `Knp\Menu\Matcher\Voter\RegexVoter`
|
||
|
|
||
|
## 2.0.0 alpha 2 (2014-05-01)
|
||
|
|
||
|
* [BC break] Changed the TwigRenderer to accept a menu template only as a string
|
||
|
* [BC break] Refactored the way of rendering twig templates. Every template should extends
|
||
|
the `knp_menu.html.twig` template.
|
||
|
* Introduced extension points in the MenuFactory through `Knp\Menu\Factory\ExtensionInterface`
|
||
|
* [BC break compared to 2.0 alpha 1] The inheritance extension points introduced in alpha1 are
|
||
|
deprecated in favor of extensions and will be removed before the stable release.
|
||
|
* `Knp\Menu\Silex\RouterAwareFactory` is deprecated in favor of `Knp\Menu\Silex\RoutingExtension`.
|
||
|
* [BC break] Deprecated the methods `createFromArray` and `createFromNode` in the MenuFactory and
|
||
|
removed them from `Knp\Menu\FactoryInterface`. Use `Knp\Menu\Loader\ArrayLoader` and
|
||
|
`Knp\Menu\Loader\NodeLoader` instead.
|
||
|
* [BC break] Deprecated the methods `moveToPosition`, `moveToFirstPosition`, `moveToLastPosition`,
|
||
|
`moveChildToPosition`, `callRecursively`, `toArray`, `getPathAsString` and `getBreadcrumbsArray`
|
||
|
in the MenuItem and removed them from `Knp\Menu\ItemInterface`. Use `Knp\Menu\Util\MenuManipulator`
|
||
|
instead.
|
||
|
* Made the RouterVoter compatible with SensioFrameworkExtraBundle param converters
|
||
|
* Added the possibility to match routes using a regex on their name in the RouterVoter
|
||
|
* [BC break compared to 2.0 alpha 1] Refactored the RouterVoter to make it more flexible
|
||
|
The way to pass routes in the item extras has changed.
|
||
|
|
||
|
Before:
|
||
|
|
||
|
```php
|
||
|
'extras' => array(
|
||
|
'routes' => array('foo', 'bar'),
|
||
|
'routeParameters' => array('foo' => array('id' => 4)),
|
||
|
)
|
||
|
```
|
||
|
|
||
|
After:
|
||
|
|
||
|
```php
|
||
|
'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.
|
||
|
|
||
|
## 2.0.0 alpha 1 (2013-06-23)
|
||
|
|
||
|
* Added protected methods `buildOptions` and `configureItem` in the MenuFactory as extension point by inheritance
|
||
|
* [BC break] Refactored the way to mark items as current
|
||
|
``setCurrentUri``, ``getCurrentUri`` and ``getCurrentItem`` 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] The signature of the CurrentItemFilterIterator constructor changed to accept the item matcher
|
||
|
* [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` and `item`.
|
||
|
|
||
|
## 1.1.2 (2012-06-10)
|
||
|
|
||
|
* Updated the Silex service provider for the change in the interface
|
||
|
|
||
|
## 1.1.1 (2012-05-17)
|
||
|
|
||
|
* Added the children attributes and the extras in the array export
|
||
|
|
||
|
## 1.1.0 (2012-05-17)
|
||
|
|
||
|
* 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)
|
||
|
|
||
|
## 1.0.0 (2011-12-03)
|
||
|
|
||
|
* 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
|