setDescription('Generates Twig templates files');
return $this;
}
protected function doExecute(InputInterface $input, OutputInterface $output)
{
$tplDirs = [
realpath(__DIR__ . '/../../../../templates/web/'),
realpath(__DIR__ . '/../../../../templates/mobile/')
];
$n_ok = $n_error = 0;
// Twig fails if there's no request
$this->container['request'] = new Request();
// Twig must be initialized in order to access loader
$this->container['twig'];
foreach ($tplDirs as $tplDir) {
$this->container['twig.loader.filesystem']->setPaths([$tplDir]);
$finder = new Finder();
foreach ($finder->files()->in([$tplDir]) as $file) {
try {
$this->container['twig']->loadTemplate(str_replace($tplDir, '', $file->getPathname()));
$output->writeln('' . $file . '');
$n_ok ++;
} catch (\Exception $e) {
$output->writeln('' . $e->getMessage() . '');
$n_error ++;
}
}
}
$output->writeln("");
$output->write(sprintf('%d templates generated. ', $n_ok));
if ($n_error > 0) {
$output->write(sprintf('%d templates failed.', $n_error));
}
$output->writeln("");
return $n_error;
}
}