entity_hierarchy-8.x-2.24/modules/entity_hierarchy_microsite/src/MenuRebuildProcessor.php

modules/entity_hierarchy_microsite/src/MenuRebuildProcessor.php
<?php

declare(strict_types=1);

namespace Drupal\entity_hierarchy_microsite;

use Drupal\Core\DestructableInterface;
use Drupal\Core\Menu\MenuLinkManagerInterface;

/**
 * Defines a class for rebuild microsite menus.
 */
final class MenuRebuildProcessor implements DestructableInterface {

  /**
   * TRUE if needs rebuild.
   *
   * @var bool
   */
  protected $needsRebuild = FALSE;

  /**
   * Menu link manager.
   *
   * @var \Drupal\Core\Menu\MenuLinkManagerInterface
   */
  protected $menuLinkManager;

  /**
   * Constructs a new MenuRebuildProcessor.
   *
   * @param \Drupal\Core\Menu\MenuLinkManagerInterface $menuLinkManager
   *   Menu link manager.
   */
  public function __construct(MenuLinkManagerInterface $menuLinkManager) {
    $this->menuLinkManager = $menuLinkManager;
  }

  /**
   * {@inheritdoc}
   */
  public function destruct(): void {
    if ($this->needsRebuild) {
      $this->menuLinkManager->rebuild();
      $this->needsRebuild = FALSE;
    }
  }

  /**
   * Marks rebuild as needed.
   *
   * @return $this
   */
  public function markRebuildNeeded(): self {
    $this->needsRebuild = TRUE;
    return $this;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc