Я попытался определить новое переопределение крошки, но я все еще получаю сайт по умолчанию.
Я создал собственный модуль, foo_breadcrumb:
- modules/custom/foo_breadcrumb
- foo_breadcrumb.info.yml
- foo_breadcrumb.services.yml
- src/
- BreadcrumbBuild.php
Вот это foo_breadcrumb.services.yml
:
services:
foo_breadcrumb.breadcrumb:
class: Drupal\foo_breadcrumb\BreadcrumbBuild
tags:
- { name: breadcrumb_builder, priority: 100 }
Внутри у src/BreadcrumbBuild.php
меня есть:
<?php
namespace Drupal\foo_breadcrumb;
use Drupal\Core\Breadcrumb\BreadcrumbBuilderBase;
class BreadcrumbBuild implements BreadcrumbManager {
/**
* {@inheritdoc}
*/
public function applies(array $attributes) {
return true;
}
/**
* {@inheritdoc}
*/
public function build(array $attributes) {
$breadcrumb[] = $this->l($this->t('Test'), NULL);
$breadcrumb[] = $this->l($this->t('Test2'), 'test');
return $breadcrumb;
}
}
?>
Я начал работать над единственной записью, которую я мог найти на хлебных крошках Drupal 8 , но дело в том, что она, похоже, использует более старую версию автозагрузки PSR-4, которой больше нет (для записи я на 8.0.0 -dev-beta3), и поэтому я понял, как работают все остальные модули в кодовой базе.
Теперь я совершенно уверен, что это правильно, чтобы заставить модуль загружаться; Однако я не уверен, если
class BreadcrumbBuild extends BreadcrumbBuilderBase
правильно. Проблема в том, что в старом учебнике, на который я ссылался, упоминаются ссылки BreadcrumbBuilderBase
, но более современные документы, похоже, не упоминают об этом, и мне интересно, устарел ли он - и как мне это сделать.
Кроме того, я не очень понимаю, что services.yml
файл делает в этом отношении, нет документации для этого нигде.