Updated all the contrib modules to their latest versions.
[yaffs-website] / web / modules / contrib / metatag / src / Generator / MetatagTagGenerator.php
1 <?php
2
3 namespace Drupal\metatag\Generator;
4
5 use Drupal\Console\Core\Generator\Generator;
6 use Drupal\Console\Extension\Manager;
7 use Drupal\Console\Core\Utils\TwigRenderer;
8
9 /**
10  * Drupal Console plugin for generating a tag.
11  */
12 class MetatagTagGenerator extends Generator {
13
14   /**
15    * An extension manager.
16    *
17    * @var \Drupal\Console\Extension\Manager
18    */
19   protected $extensionManager;
20
21   /**
22    * The twig renderer.
23    *
24    * @var \Drupal\Console\Core\Utils\TwigRenderer
25    */
26   protected $render;
27
28   /**
29    * MetatagTagGenerator constructor.
30    *
31    * @param \Drupal\Console\Extension\Manager $extensionManager
32    *   An extension manager.
33    * @param \Drupal\Console\Core\Utils\TwigRenderer $render
34    *   Twig renderer.
35    */
36   public function __construct(Manager $extensionManager, TwigRenderer $render) {
37     $this->extensionManager = $extensionManager;
38
39     $render->addSkeletonDir(__DIR__ . '/../../templates/');
40     $this->setRenderer($render);
41   }
42
43   /**
44    * Generator plugin.
45    *
46    * @param string $base_class
47    *   Base class.
48    * @param string $module
49    *   Module name.
50    * @param string $name
51    *   Tag name.
52    * @param string $label
53    *   Tag label.
54    * @param string $description
55    *   Tag description.
56    * @param string $plugin_id
57    *   Plugin ID.
58    * @param string $class_name
59    *   Class name.
60    * @param string $group
61    *   Tag group.
62    * @param string $weight
63    *   Tag weight.
64    * @param string $type
65    *   Tag type.
66    * @param bool $secure
67    *   Is secure.
68    * @param bool $multiple
69    *   Is multiple.
70    */
71   public function generate($base_class, $module, $name, $label, $description, $plugin_id, $class_name, $group, $weight, $type, $secure, $multiple) {
72     $parameters = [
73       'base_class' => $base_class,
74       'module' => $module,
75       'name' => $name,
76       'label' => $label,
77       'description' => $description,
78       'plugin_id' => $plugin_id,
79       'class_name' => $class_name,
80       'group' => $group,
81       'weight' => $weight,
82       'type' => $type,
83       'secure' => $secure,
84       'multiple' => $multiple,
85       'prefix' => '<' . '?php',
86     ];
87
88     $this->renderFile(
89       'tag.php.twig',
90       $this->extensionManager->getPluginPath($module, 'metatag/Tag') . '/' . $class_name . '.php',
91       $parameters
92     );
93
94     $this->renderFile(
95       'metatag_tag.schema.yml.twig',
96       $this->extensionManager->getModule($module)->getPath() . '/config/schema/' . $module . '.metatag_tag.schema.yml',
97       $parameters,
98       FILE_APPEND
99     );
100   }
101
102 }