Upgraded drupal core with security updates
[yaffs-website] / web / core / lib / Drupal / Core / ParamConverter / MenuLinkPluginConverter.php
1 <?php
2
3 namespace Drupal\Core\ParamConverter;
4
5 use Drupal\Core\Menu\MenuLinkManagerInterface;
6 use Drupal\Component\Plugin\Exception\PluginException;
7 use Symfony\Component\Routing\Route;
8
9 /**
10  * Parameter converter for upcasting entity ids to full objects.
11  */
12 class MenuLinkPluginConverter implements ParamConverterInterface {
13
14   /**
15    * Plugin manager which creates the instance from the value.
16    *
17    * @var \Drupal\Core\Menu\MenuLinkManagerInterface
18    */
19   protected $menuLinkManager;
20
21   /**
22    * Constructs a new MenuLinkPluginConverter.
23    *
24    * @param \Drupal\Core\Menu\MenuLinkManagerInterface $menu_link_manager
25    *   The menu link plugin manager.
26    */
27   public function __construct(MenuLinkManagerInterface $menu_link_manager) {
28     $this->menuLinkManager = $menu_link_manager;
29   }
30
31   /**
32    * {@inheritdoc}
33    */
34   public function convert($value, $definition, $name, array $defaults) {
35     if ($value) {
36       try {
37         return $this->menuLinkManager->createInstance($value);
38       }
39       catch (PluginException $e) {
40         // Suppress the error.
41       }
42     }
43   }
44
45   /**
46    * {@inheritdoc}
47    */
48   public function applies($definition, $name, Route $route) {
49     return (!empty($definition['type']) && $definition['type'] === 'menu_link_plugin');
50   }
51
52 }