我试图定义一个新的面包屑替代,但是我仍在使用默认站点。
我创建了一个自定义模块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
文件在这方面的功能,对此没有文档。