Security update for Core, with self-updated composer
[yaffs-website] / vendor / drupal / console / src / Generator / PluginBlockGenerator.php
1 <?php
2
3 /**
4  * @file
5  * Contains \Drupal\Console\Generator\PluginBlockGenerator.
6  */
7
8 namespace Drupal\Console\Generator;
9
10 use Drupal\Console\Core\Generator\Generator;
11 use Drupal\Console\Extension\Manager;
12
13 class PluginBlockGenerator extends Generator
14 {
15     /**
16      * @var Manager
17      */
18     protected $extensionManager;
19
20     /**
21      * PermissionGenerator constructor.
22      *
23      * @param Manager $extensionManager
24      */
25     public function __construct(
26         Manager $extensionManager
27     ) {
28         $this->extensionManager = $extensionManager;
29     }
30
31     /**
32      * {@inheritdoc}
33      */
34     public function generate(array $parameters)
35     {
36         $inputs = $parameters['inputs'];
37         $module = $parameters['module'];
38         $class_name = $parameters['class_name'];
39
40         // Consider the type when determining a default value. Figure out what
41         // the code looks like for the default value tht we need to generate.
42         foreach ($inputs as &$input) {
43             $default_code = '$this->t(\'\')';
44             if ($input['default_value'] == '') {
45                 switch ($input['type']) {
46                 case 'checkbox':
47                 case 'number':
48                 case 'weight':
49                 case 'radio':
50                     $default_code = 0;
51                     break;
52
53                 case 'radios':
54                 case 'checkboxes':
55                     $default_code = 'array()';
56                     break;
57                 }
58             } elseif (substr($input['default_value'], 0, 1) == '$') {
59                 // If they want to put in code, let them, they're programmers.
60                 $default_code = $input['default_value'];
61             } elseif (is_numeric($input['default_value'])) {
62                 $default_code = $input['default_value'];
63             } elseif (preg_match('/^(true|false)$/i', $input['default_value'])) {
64                 // Coding Standards
65                 $default_code = strtoupper($input['default_value']);
66             } else {
67                 $default_code = '$this->t(\'' . $input['default_value'] . '\')';
68             }
69             $input['default_code'] = $default_code;
70         }
71
72         $this->renderFile(
73             'module/src/Plugin/Block/block.php.twig',
74             $this->extensionManager->getPluginPath($module, 'Block') . '/' . $class_name . '.php',
75             $parameters
76         );
77     }
78 }