for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
/**
* (c) FSi sp. z o.o. <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace FSi\Bundle\AdminBundle\Menu\KnpMenu;
use FSi\Bundle\AdminBundle\Admin\Element;
use FSi\Bundle\AdminBundle\Menu\Item\ElementItem;
use FSi\Bundle\AdminBundle\Menu\Item\Item as AdminMenuItem;
use Knp\Menu\ItemInterface as KnpMenuItem;
class ItemElementsDecorator implements ItemDecorator
{
public function decorate(KnpMenuItem $knpMenuItem, AdminMenuItem $adminMenuItem): void
if ($adminMenuItem instanceof ElementItem && $adminMenuItem->hasOption('elements')) {
$routes = $knpMenuItem->getExtra('routes', []);
/** @var Element[] $elements */
$elements = $adminMenuItem->getOption('elements');
foreach ($elements as $element) {
$routes[] = [
'route' => $element->getRoute(),
'parameters' => $element->getRouteParameters()
];
}
$knpMenuItem->setExtra('routes', $routes);