class Breadcrumb

Same name in other branches
  1. 9 core/lib/Drupal/Core/Breadcrumb/Breadcrumb.php \Drupal\Core\Breadcrumb\Breadcrumb
  2. 8.9.x core/lib/Drupal/Core/Breadcrumb/Breadcrumb.php \Drupal\Core\Breadcrumb\Breadcrumb
  3. 11.x core/lib/Drupal/Core/Breadcrumb/Breadcrumb.php \Drupal\Core\Breadcrumb\Breadcrumb

Used to return generated breadcrumbs with associated cacheability metadata.

Hierarchy

Expanded class hierarchy of Breadcrumb

12 files declare their use of Breadcrumb
BookBreadcrumbBuilder.php in core/modules/book/src/BookBreadcrumbBuilder.php
BreadcrumbManagerTest.php in core/tests/Drupal/Tests/Core/Breadcrumb/BreadcrumbManagerTest.php
BreadcrumbTest.php in core/tests/Drupal/Tests/Core/Breadcrumb/BreadcrumbTest.php
CommentBreadcrumbBuilder.php in core/modules/comment/src/CommentBreadcrumbBuilder.php
ForumBreadcrumbBuilderBase.php in core/modules/forum/src/Breadcrumb/ForumBreadcrumbBuilderBase.php

... See full list

10 string references to 'Breadcrumb'
block.block.claro_breadcrumbs.yml in core/themes/claro/config/optional/block.block.claro_breadcrumbs.yml
core/themes/claro/config/optional/block.block.claro_breadcrumbs.yml
block.block.olivero_breadcrumbs.yml in core/themes/olivero/config/optional/block.block.olivero_breadcrumbs.yml
core/themes/olivero/config/optional/block.block.olivero_breadcrumbs.yml
Breadcrumb404Test::testBreadcrumbOn404Pages in core/tests/Drupal/FunctionalTests/Breadcrumb/Breadcrumb404Test.php
Tests that different 404s don't create unnecessary cache entries.
claro.info.yml in core/themes/claro/claro.info.yml
core/themes/claro/claro.info.yml
d7_block.yml in core/modules/block/migrations/d7_block.yml
core/modules/block/migrations/d7_block.yml

... See full list

File

core/lib/Drupal/Core/Breadcrumb/Breadcrumb.php, line 13

Namespace

Drupal\Core\Breadcrumb
View source
class Breadcrumb implements RenderableInterface, RefinableCacheableDependencyInterface {
    use RefinableCacheableDependencyTrait;
    
    /**
     * An ordered list of links for the breadcrumb.
     *
     * @var \Drupal\Core\Link[]
     */
    protected $links = [];
    
    /**
     * Gets the breadcrumb links.
     *
     * @return \Drupal\Core\Link[]
     */
    public function getLinks() {
        return $this->links;
    }
    
    /**
     * Sets the breadcrumb links.
     *
     * @param \Drupal\Core\Link[] $links
     *   The breadcrumb links.
     *
     * @return $this
     *
     * @throws \LogicException
     *   Thrown when setting breadcrumb links after they've already been set.
     */
    public function setLinks(array $links) {
        if (!empty($this->links)) {
            throw new \LogicException('Once breadcrumb links are set, only additional breadcrumb links can be added.');
        }
        $this->links = $links;
        return $this;
    }
    
    /**
     * Appends a link to the end of the ordered list of breadcrumb links.
     *
     * @param \Drupal\Core\Link $link
     *   The link appended to the breadcrumb.
     *
     * @return $this
     */
    public function addLink(Link $link) {
        $this->links[] = $link;
        return $this;
    }
    
    /**
     * {@inheritdoc}
     */
    public function toRenderable() {
        $build = [
            '#cache' => [
                'contexts' => $this->cacheContexts,
                'tags' => $this->cacheTags,
                'max-age' => $this->cacheMaxAge,
            ],
        ];
        if (!empty($this->links)) {
            $build += [
                '#theme' => 'breadcrumb',
                '#links' => $this->links,
            ];
        }
        return $build;
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
Breadcrumb::$links protected property An ordered list of links for the breadcrumb.
Breadcrumb::addLink public function Appends a link to the end of the ordered list of breadcrumb links.
Breadcrumb::getLinks public function Gets the breadcrumb links.
Breadcrumb::setLinks public function Sets the breadcrumb links.
Breadcrumb::toRenderable public function Overrides RenderableInterface::toRenderable
CacheableDependencyTrait::$cacheContexts protected property Cache contexts.
CacheableDependencyTrait::$cacheMaxAge protected property Cache max-age.
CacheableDependencyTrait::$cacheTags protected property Cache tags.
CacheableDependencyTrait::getCacheContexts public function 4
CacheableDependencyTrait::getCacheMaxAge public function 4
CacheableDependencyTrait::getCacheTags public function 4
CacheableDependencyTrait::setCacheability protected function Sets cacheability; useful for value object constructors.
RefinableCacheableDependencyTrait::addCacheableDependency public function 1
RefinableCacheableDependencyTrait::addCacheContexts public function
RefinableCacheableDependencyTrait::addCacheTags public function
RefinableCacheableDependencyTrait::mergeCacheMaxAge public function

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.