Yaffs site version 1.1
[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  *
16  * @package Drupal\Console\Core\Generator
17  */
18 abstract class Generator
19 {
20     /**
21      * @var TwigRenderer
22      */
23     protected $renderer;
24
25     /**
26      * @var FileQueue
27      */
28     protected $fileQueue;
29
30     /**
31      * @param $renderer
32      */
33     public function setRenderer(TwigRenderer $renderer)
34     {
35         $this->renderer = $renderer;
36     }
37
38     /**
39      * @param $fileQueue
40      */
41     public function setFileQueue(FileQueue $fileQueue)
42     {
43         $this->fileQueue = $fileQueue;
44     }
45
46     /**
47      * @param string $template
48      * @param string $target
49      * @param array  $parameters
50      * @param null   $flag
51      *
52      * @return bool
53      */
54     protected function renderFile(
55         $template,
56         $target,
57         $parameters = [],
58         $flag = null
59     ) {
60         if (!is_dir(dirname($target))) {
61             mkdir(dirname($target), 0777, true);
62         }
63
64         $content = $this->renderer->render($template, $parameters);
65
66         if (file_put_contents($target, $content, $flag)) {
67             $this->fileQueue->addFile($target);
68
69             return true;
70         }
71
72         return false;
73     }
74 }