5 * Contains \Drupal\Console\Core\Generator\Generator.
8 namespace Drupal\Console\Core\Generator;
10 use Drupal\Console\Core\Utils\TwigRenderer;
11 use Drupal\Console\Core\Utils\FileQueue;
12 use Drupal\Console\Core\Utils\CountCodeLines;
13 use Drupal\Console\Core\Utils\DrupalFinder;
18 * @package Drupal\Console\Core\Generator
20 abstract class Generator
35 protected $countCodeLines;
40 protected $drupalFinder;
45 public function setRenderer(TwigRenderer $renderer)
47 $this->renderer = $renderer;
53 public function setFileQueue(FileQueue $fileQueue)
55 $this->fileQueue = $fileQueue;
59 * @param $countCodeLines
61 public function setCountCodeLines(CountCodeLines $countCodeLines)
63 $this->countCodeLines = $countCodeLines;
67 * @param DrupalFinder $drupalFinder
69 public function setDrupalFinder($drupalFinder)
71 $this->drupalFinder = $drupalFinder;
75 * @param string $template
76 * @param string $target
77 * @param array $parameters
82 protected function renderFile(
88 if (!is_dir(dirname($target))) {
89 if (!mkdir(dirname($target), 0777, true)) {
90 throw new \InvalidArgumentException(
92 'Path "%s" is invalid. You need to provide a valid path.',
100 if (!empty($flag) && file_exists($target)) {
101 $currentLine = count(file($target));
103 $content = $this->renderer->render($template, $parameters);
105 if (file_put_contents($target, $content, $flag)) {
106 $this->fileQueue->addFile($target);
108 $newCodeLine = count(file($target));
110 if ($currentLine > 0) {
111 $newCodeLine = ($newCodeLine-$currentLine);
114 $this->countCodeLines->addCountCodeLines($newCodeLine);
122 public function addSkeletonDir($skeletonDir)
124 $this->renderer->addSkeletonDir($skeletonDir);