public function MenuLinkManager::removeDefinition

public MenuLinkManager::removeDefinition($id, $persist = TRUE)

Removes a single link definition from the menu tree storage.

This is used for plugins not found through discovery to remove definitions.

Parameters

string $id: The menu link plugin ID.

bool $persist: If TRUE, this method will attempt to persist the deletion from any external storage by invoking MenuLinkInterface::deleteLink() on the plugin that is being deleted.

Throws

\Drupal\Component\Plugin\Exception\PluginException Thrown if the $id is not a valid, existing, plugin ID or if the link cannot be deleted.

Overrides MenuLinkManagerInterface::removeDefinition

File

core/lib/Drupal/Core/Menu/MenuLinkManager.php, line 290

Class

MenuLinkManager
Manages discovery, instantiation, and tree building of menu link plugins.

Namespace

Drupal\Core\Menu

Code

public function removeDefinition($id, $persist = TRUE) {
  $definition = $this->treeStorage->load($id);
  // It's possible the definition has already been deleted, or doesn't exist.
  if ($definition) {
    $instance = $this->createInstance($id);
    $this->deleteInstance($instance, $persist);
  }
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Menu!MenuLinkManager.php/function/MenuLinkManager::removeDefinition/8.1.x