class SkippablePathBasedBreadcrumbBuilder

Same name and namespace in other branches
  1. 11.x core/modules/system/tests/modules/menu_test/src/SkippablePathBasedBreadcrumbBuilder.php \Drupal\menu_test\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(protected BreadcrumbBuilderInterface $pathBasedBreadcrumbBuilder, protected 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.