Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Knp Menu Laravel Package

knplabs/knp-menu

View on GitHub
Deep Wiki
Context7
v3.8.0

What's Changed

New Contributors

Full Changelog: https://github.com/KnpLabs/KnpMenu/compare/v3.7.0...v3.8.0

v3.7.0

This release allows KnpMenu to work with the future release of Twig 4, by removing the deprecated spaceless filter. This was done in a way which should be probably improved. For all the details about it, please check the discussions on PR #399

What's Changed

Full Changelog: https://github.com/KnpLabs/KnpMenu/compare/v3.6.0...v3.7.0

v3.6.0

What's Changed

Full Changelog: https://github.com/KnpLabs/KnpMenu/compare/v3.5.0...v3.6.0

v3.5.0

What's Changed

New Contributors

Full Changelog: https://github.com/KnpLabs/KnpMenu/compare/v3.4.0...v3.5.0

v3.4.0

What's Changed

New Contributors

Full Changelog: https://github.com/KnpLabs/KnpMenu/compare/v3.3.0...v3.4.0

v3.3.0

Allow Symfony 6

v3.2.0
  • Remove Symfony 6 deprecations
  • Enforce phpstan rules (max level)
v3.1.2

Minor tweaks to coding standard and configurations

v3.1.1
  • added some missing type-hints
  • fixed currentAsLink not working when determining state via voters
v3.1.0
  • Allowed Symfony 5 components
  • Removed support for unsupported Symfony versions (4.0 and 4.1)
  • Allowed Twig 3
v3.0.0
  • Raised PHP requirements. This library now requires PHP 7.2 or newer
  • [BC break] Enforced strong types on all interfaces and classes. If you implemented library interface, you need to adapt your implementations.
  • [BC break] Removed all features deprecated in version 2. Specifically, MenuFactory and MenuItem are not accepting a null name anymore
2.5.0

Deprecate passing a null name to MenuItem

2.3.0

New features

  • Added Symfony 4 support
  • Added a new LazyProvider for menus, building menus from callables or "callable builders"
  • Added support for injecting the RequestStack in the RouteVoter
  • Added support for iterable in the ChainProvider (allowing lazy-loading of providers in the iterator)
  • Added support for menu and renderer providers based on a PSR-11 container
  • Added support for registering voters using an iterator

Bug fixes

  • Fixed RouteVoter to also match on non-string request arguments like integers as long as both string representations are identical.
  • Fixed support for the depth ancestor of the knp_menu_ancestor Twig test

Deprecations

  • Deprecated the Silex 1 KnpMenuServiceProvider. Use the knplabs/knp-menu-silex package instead.
  • Injecting a Request in the RouteVoter is deprecated. Inject the RequestStack instead.
  • Deprecated MenuMatcher::addVoter. Inject voters in the constructor instead
2.2.0
  • Added a new function to twig: knp_menu_get_current_item
v2.1.1
v2.1.0
  • 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.
v2.0.1
  • Fixed voter conventions on RouteVoter
v2.0.0
  • [BC break] Clean code and removed the BC layer
v2.0.0-beta1
  • [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
v2.0.0-alpha2
  • [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:

    '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.

v2.0.0-alpha1

This alpha release does not represent the final feature set of 2.0. As the development of 2.0 hanged for a while, many people are already using the current state of the code so this alpha release allows them to lock it if they cannot update for the new changes.

Changelog:

  • 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.
v1.1.2
  • Updated the Silex service provider for the change in the interface
v1.1.1
  • Added the children attributes and the extras in the array export
v1.1.0
  • 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)
v1.0.0
  • 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
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
comsave/common
alecsammon/php-raml-parser
chrome-php/wrench
lendable/composer-license-checker
typhoon/reflection
mesilov/moneyphp-percentage
mike42/gfx-php
bookdown/themes
aura/view
aura/html
aura/cli
povils/phpmnd
nayjest/manipulator
omnipay/tests
psr-mock/http-message-implementation
psr-mock/http-factory-implementation
psr-mock/http-client-implementation
voku/email-check
voku/urlify
rtheunissen/guzzle-log-middleware