Yaffs site version 1.1
[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\Core\Generator\Generator;
11 use Drupal\Console\Extension\Manager;
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    * Generator Service.
33    *
34    * @param string $module        Module name
35    * @param string $cache_context Cache context name
36    * @param string $class         Class name
37    * @param array  $services      List of services
38    */
39     public function generate($module, $cache_context, $class, $services)
40     {
41         $parameters = [
42         'module' => $module,
43         'name' => 'cache_context.' . $cache_context,
44         'class' => $class,
45         'services' => $services,
46         'class_path' => sprintf('Drupal\%s\CacheContext\%s', $module, $class),
47         'tags' => ['name' => 'cache.context'],
48         'file_exists' => file_exists($this->extensionManager->getModule($module)->getPath() .'/'.$module.'.services.yml'),
49         ];
50
51         $this->renderFile(
52             'module/src/cache-context.php.twig',
53             $this->extensionManager->getModule($module)->getSourcePath().'/CacheContext/'.$class.'.php',
54             $parameters
55         );
56
57         $this->renderFile(
58             'module/services.yml.twig',
59             $this->extensionManager->getModule($module)->getPath() .'/'.$module.'.services.yml',
60             $parameters,
61             FILE_APPEND
62         );
63     }
64 }