function MenuLinkManager::addDefinition

Same name and namespace in other branches
  1. 11.x core/lib/Drupal/Core/Menu/MenuLinkManager.php \Drupal\Core\Menu\MenuLinkManager::addDefinition()

File

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

Class

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

Namespace

Drupal\Core\Menu

Code

public function addDefinition($id, array $definition) {
  if ($this->treeStorage
    ->load($id)) {
    throw new PluginException("The menu link ID {$id} already exists as a plugin definition");
  }
  elseif ($id === '') {
    throw new PluginException("The menu link ID cannot be empty");
  }
  // Add defaults, so there is no requirement to specify everything.
  $this->processDefinition($definition, $id);
  // Store the new link in the tree.
  $this->treeStorage
    ->save($definition);
  return $this->createInstance($id);
}

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