function MenuLinkManager::addDefinition

Same name in other branches
  1. 8.9.x core/lib/Drupal/Core/Menu/MenuLinkManager.php \Drupal\Core\Menu\MenuLinkManager::addDefinition()
  2. 10 core/lib/Drupal/Core/Menu/MenuLinkManager.php \Drupal\Core\Menu\MenuLinkManager::addDefinition()
  3. 11.x core/lib/Drupal/Core/Menu/MenuLinkManager.php \Drupal\Core\Menu\MenuLinkManager::addDefinition()

Overrides MenuLinkManagerInterface::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.