diff --git a/modules/menu_bench/config/install/system.menu.menu_bench.yml b/modules/menu_bench/config/install/system.menu.menu_bench.yml new file mode 100644 index 0000000..02450df --- /dev/null +++ b/modules/menu_bench/config/install/system.menu.menu_bench.yml @@ -0,0 +1,5 @@ +id: menu_bench +label: 'Menu for benchmarking' +description: '' +langcode: en +locked: false diff --git a/modules/menu_bench/menu_bench.info.yml b/modules/menu_bench/menu_bench.info.yml new file mode 100644 index 0000000..af109d0 --- /dev/null +++ b/modules/menu_bench/menu_bench.info.yml @@ -0,0 +1,5 @@ +name: 'Menu Bench' +type: module +description: 'Renders a menu with a lot of custom links. Used for benchmarking.' +package: Testing +core: 8.x diff --git a/modules/menu_bench/menu_bench.install b/modules/menu_bench/menu_bench.install new file mode 100644 index 0000000..6db0748 --- /dev/null +++ b/modules/menu_bench/menu_bench.install @@ -0,0 +1,24 @@ +hasDefinition('menu_link')) { + for ($i=0; $i<100; $i++) { + entity_create('menu_link', array( + 'link_title' => 'Link ' . ($i+1), + 'menu_name' => 'menu_bench', + 'route_name' => 'menu_bench.display', + ))->save(); + } + } + else { + for ($i=0; $i<100; $i++) { + entity_create('menu_link_content', array( + 'title' => 'Link ' . ($i+1), + 'bundle' => 'menu_link_content', + 'menu_name' => 'menu_bench', + 'route_name' => 'menu_bench.display', + ))->save(); + } + } +} diff --git a/modules/menu_bench/menu_bench.routing.yml b/modules/menu_bench/menu_bench.routing.yml new file mode 100644 index 0000000..feae939 --- /dev/null +++ b/modules/menu_bench/menu_bench.routing.yml @@ -0,0 +1,7 @@ +menu_bench.display: + path: '/menu-bench' + defaults: + _content: '\Drupal\menu_bench\MenuBenchController::display' + _title: 'Menu Bench' + requirements: + _access: 'TRUE' diff --git a/modules/menu_bench/src/MenuBenchController.php b/modules/menu_bench/src/MenuBenchController.php new file mode 100644 index 0000000..b304696 --- /dev/null +++ b/modules/menu_bench/src/MenuBenchController.php @@ -0,0 +1,15 @@ +renderMenu('menu_bench'); + } + else { + $tree_service = \Drupal::service('menu.link_tree'); + return $tree_service->buildRenderTree($tree_service->buildPageData('menu_bench')); + } + } +}