Drupal 8 – файл маршрутизации в теме

Я обычный пользователь Drupal 7, но это первый раз, когда я использую Drupal 8.

Я пытаюсь определить пользовательские маршруты в своей теме, но, похоже, мой файл маршрутизации не учитывается. Вот мои актуальные файлы:

foo/ src/ Controller/ TestController.php templates/ test/ list.html.twig foo.routing.yml 

С foo.routing.yml :

 foo.test: path: '/test-url' defaults: _controller: '\Drupal\foo\Controller\TestController::list' _title: 'D8 routing test page' requirements: _permission: 'access content' по foo.test: path: '/test-url' defaults: _controller: '\Drupal\foo\Controller\TestController::list' _title: 'D8 routing test page' requirements: _permission: 'access content' 

И TestController.php :

 <?php namespace Drupal\foo\Controller; use Drupal\Core\Controller\ControllerBase; class TestController extends ControllerBase { public function list() { return array( '#theme' => 'test/list.html.twig', '#bar' => 'Variable transmission test' ); } } 

Текущий результат, когда я вызываю /test-url – не мой шаблон, а стандартная страница узла со всеми отображаемыми полями.
Я что-то упустил, чтобы заставить его работать?

Related of "Drupal 8 – файл маршрутизации в теме"

Вы должны использовать название темы, а не путь шаблона в вашем массиве рендеринга:

 public function list() { return array( '#theme' => 'list', '#bar' => 'Variable transmission test' ); } 

Кроме того, по умолчанию у Drupal нет темы «список», поэтому вам нужно определить ее (в файле foo.theme):

 function foo_theme($existing, $type, $theme, $path) { return array( 'list' => array( 'variables' => array( 'bar' => NULL ) ) ); 

UPD: добавление @zessx: объявление маршрута может быть реализовано в модуле, а не в теме.