class SkippablePathBasedBreadcrumbBuilder

A path-based breadcrumb builder can be skipped from applying.

Hierarchy

Expanded class hierarchy of SkippablePathBasedBreadcrumbBuilder

File

core/modules/system/tests/modules/menu_test/src/SkippablePathBasedBreadcrumbBuilder.php, line 16

Namespace

Drupal\menu_test
View source
class SkippablePathBasedBreadcrumbBuilder implements BreadcrumbBuilderInterface {
    public function __construct(BreadcrumbBuilderInterface $pathBasedBreadcrumbBuilder, RequestStack $requestStack) {
    }
    
    /**
     * {@inheritdoc}
     */
    public function applies(RouteMatchInterface $route_match, ?CacheableMetadata $cacheable_metadata = NULL) : bool {
        $query_arg = 'menu_test_skip_breadcrumbs';
        $cacheable_metadata?->addCacheContexts([
            'url.query_args:' . $query_arg,
        ]);
        // Apply unless the query argument is present.
        return !$this->requestStack
            ->getCurrentRequest()->query
            ->has($query_arg);
    }
    
    /**
     * {@inheritdoc}
     */
    public function build(RouteMatchInterface $route_match) : Breadcrumb {
        return $this->pathBasedBreadcrumbBuilder
            ->build($route_match);
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
SkippablePathBasedBreadcrumbBuilder::applies public function Whether this breadcrumb builder should be used to build the breadcrumb. Overrides BreadcrumbBuilderInterface::applies
SkippablePathBasedBreadcrumbBuilder::build public function Builds the breadcrumb. Overrides BreadcrumbBuilderInterface::build
SkippablePathBasedBreadcrumbBuilder::__construct public function

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