Security update for Core, with self-updated composer
[yaffs-website] / vendor / drupal / console / src / Generator / CacheContextGenerator.php
1 <?php
2
3 /**
4  * @file
5  * Contains \Drupal\Console\Generator\CacheContextGenerator.
6  */
7
8 namespace Drupal\Console\Generator;
9
10 use Drupal\Console\Extension\Manager;
11 use Drupal\Console\Core\Generator\Generator;
12
13 class CacheContextGenerator extends Generator
14 {
15     /**
16      * @var Manager
17      */
18     protected $extensionManager;
19
20     /**
21      * CacheContextGenerator 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         $module = $parameters['module'];
37         $cache_context = $parameters['ache_context'];
38         $class = $parameters['class'];
39
40         $moduleInstance = $this->extensionManager->getModule($module);
41         $modulePath = $moduleInstance->getPath() . '/' . $module;
42
43         $parameters = array_merge($parameters, [
44             'name' => 'cache_context.' . $cache_context,
45             'class_path' => sprintf('Drupal\%s\CacheContext\%s', $module, $class),
46             'tags' => ['name' => 'cache.context'],
47             'file_exists' => file_exists($modulePath . '.services.yml'),
48         ]);
49
50         $this->renderFile(
51             'module/src/cache-context.php.twig',
52             $moduleInstance->getSourcePath() . '/CacheContext/' . $class . '.php',
53             $parameters
54         );
55
56         $this->renderFile(
57             'module/services.yml.twig',
58             $modulePath . '.services.yml',
59             $parameters,
60             FILE_APPEND
61         );
62     }
63 }