ฉันพยายามกำหนด breadcrumb override ใหม่ แต่ฉันยังคงได้รับค่าเริ่มต้นของไซต์
ฉันได้สร้างโมดูลที่กำหนดเองแล้ว 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 breadcrumbsแต่ดูเหมือนว่ามันจะใช้เวอร์ชั่นเก่ากว่าของการโหลดอัตโนมัติ PSR-4 ที่ไม่มีอยู่อีกต่อไป (สำหรับเร็กคอร์ดที่ฉันใช้ 8.0.0 -dev-beta3) ดังนั้นฉันไปตามที่โมดูลอื่น ๆ ทั้งหมดทำงานใน codebase
ตอนนี้ฉันค่อนข้างแน่ใจว่าถูกต้องเพื่อให้โมดูลโหลด; แต่ฉันไม่แน่ใจว่า
class BreadcrumbBuild extends BreadcrumbBuilderBase
ถูกต้อง. ปัญหาคือว่าการกวดวิชาเก่าที่ฉันเชื่อมโยงกับการกล่าวถึงขยายBreadcrumbBuilderBase
แต่เอกสารเพิ่มเติมปัจจุบันดูเหมือนจะไม่พูดถึงและฉันสงสัยว่ามันล้าสมัย - และฉันควรทำอย่างไร
ในทำนองเดียวกันฉันไม่เข้าใจจริงๆว่าservices.yml
ไฟล์ทำอะไรในเรื่องนี้ไม่มีเอกสารสำหรับเรื่องนี้