Я спробував визначити нове заміщення сухаря, але я все ще отримую сайт за замовчуванням.
Я створив спеціальний модуль, 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
робиться у цьому відношенні, для цього немає ніде документації.