Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. MenuRouterRebuildSubscriber.php

function MenuRouterRebuildSubscriber::menuLinksRebuild

Perform menu-specific rebuilding.

1 call to MenuRouterRebuildSubscriber::menuLinksRebuild()
MenuRouterRebuildSubscriber::onRouterRebuild in core/lib/Drupal/Core/EventSubscriber/MenuRouterRebuildSubscriber.php
Rebuilds the menu links and deletes the local_task cache tag.

File

core/lib/Drupal/Core/EventSubscriber/MenuRouterRebuildSubscriber.php, line 57

Class

MenuRouterRebuildSubscriber
Rebuilds the default menu links and runs menu-specific code if necessary.

Namespace

Drupal\Core\EventSubscriber

Code

protected function menuLinksRebuild() {
    if ($this->lock
        ->acquire(__FUNCTION__)) {
        try {
            $transaction = $this->connection
                ->startTransaction();
            // Ensure the menu links are up to date.
            $this->menuLinkManager
                ->rebuild();
            // Ignore any database replicas temporarily.
            $this->replicaKillSwitch
                ->trigger();
        } catch (\Exception $e) {
            if (isset($transaction)) {
                $transaction->rollBack();
            }
            Error::logException($this->logger, $e);
        }
        $this->lock
            ->release(__FUNCTION__);
    }
    else {
        // Wait for another request that is already doing this work.
        // We choose to block here since otherwise the router item may not
        // be available during routing resulting in a 404.
        $this->lock
            ->wait(__FUNCTION__);
    }
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal