Бандл для Symfony2, который позволяет генерировать меню на основе аннотаций к контроллерам и действиям.
Добавить в composer.json:
{
"require": {
"dizzy7/menu-generator": "dev-master"
}
}Или установить из косноли:
php composer.phar require menu-generator dev-masterДобавить строчку к app/AppKernel.php
class AppKernel extends Kernel
{
...
public function registerBundles()
{
$bundles = array(
...
new Dizzy7\MenuGeneratorBundle\Dizzy7MenuGeneratorBundle(),
);
...
return $bundles;
}
...
}Обновить структуру базы:
app/console doctrine:schema:update --forceВ конфигурации приложения при необходимости можно включить кэширование
# app/config/config.yml
dizzy7_menu_generator:
cache: trueВ классе контроллера, для действий которого нужно сгенерировать меню:
use ...
use Dizzy7\MenuGeneratorBundle\Menu\Mapping\Menu;
/**
* @Menu(name="Раздел меню",sort="10")
*/
class SampleController extends Controller
{
/**
* @Menu(name="Строка меню 2",sort="20")
*/
public function indexAction()
{
...
}
/**
* @Menu(name="Строка меню 1",sort="10")
*/
public function otherAction()
{
...
}
} Запустить генерацию меню:
app/console menu:generateВ шаблоне для вывода меню спользовать:
{{ knp_menu_render('Dizzy7MenuGeneratorBundle:Builder:generateMenu') }}Более подробно о шаблонах меню можно в документации KnpMenuBundle