42fc305b98c472d82796753ce7f5ad9213c4cbee
[yaffs-website] / vendor / drupal / console-core / src / Generator / Generator.php
1 <?php
2
3 /**
4  * @file
5  * Contains \Drupal\Console\Core\Generator\Generator.
6  */
7
8 namespace Drupal\Console\Core\Generator;
9
10 use Drupal\Console\Core\Utils\TwigRenderer;
11 use Drupal\Console\Core\Utils\FileQueue;
12
13 /**
14  * Class Generator
15  * @package Drupal\Console\Core\Generator
16  */
17 abstract class Generator
18 {
19     /**
20      * @var TwigRenderer
21      */
22     protected $renderer;
23
24     /**
25      * @var FileQueue
26      */
27     protected $fileQueue;
28
29     /**
30      * @param $renderer
31      */
32     public function setRenderer(TwigRenderer $renderer)
33     {
34         $this->renderer = $renderer;
35     }
36
37     /**
38      * @param $fileQueue
39      */
40     public function setFileQueue(FileQueue $fileQueue)
41     {
42         $this->fileQueue = $fileQueue;
43     }
44
45     /**
46      * @param string $template
47      * @param string $target
48      * @param array  $parameters
49      * @param null   $flag
50      *
51      * @return bool
52      */
53     protected function renderFile(
54         $template,
55         $target,
56         $parameters = [],
57         $flag = null
58     ) {
59         if (!is_dir(dirname($target))) {
60             mkdir(dirname($target), 0777, true);
61         }
62
63         $content = $this->renderer->render($template, $parameters);
64
65         if (file_put_contents($target, $content, $flag)) {
66             $this->fileQueue->addFile($target);
67
68             return true;
69         }
70
71         return false;
72     }
73 }