Browse Source
Utiliser un Template pour centraliser Twig, et ajouter l’extension string de twig
master
Utiliser un Template pour centraliser Twig, et ajouter l’extension string de twig
master
6 changed files with 246 additions and 47 deletions
-
3composer.json
-
152composer.lock
-
11src/Stage/IndexStage.php
-
15src/Stage/PhpDocumentorConfigStage.php
-
40src/Template.php
-
72templates/index.html.twig
@ -0,0 +1,40 @@ |
|||
<?php |
|||
|
|||
namespace Spip\Autodoc; |
|||
|
|||
use Twig\Loader\FilesystemLoader; |
|||
use Twig\Environment as Twig; |
|||
use Twig\Extension\CoreExtension; |
|||
use Twig\Extra\String\StringExtension; |
|||
|
|||
class Template { |
|||
private Twig $twig; |
|||
|
|||
public function __construct(private string $template_directory, private string $output_directory) |
|||
{ |
|||
$this->twig = $this->instance(); |
|||
} |
|||
|
|||
private function instance(): Twig { |
|||
$loader = new FilesystemLoader($this->template_directory); |
|||
$twig = new Twig($loader); |
|||
$twig->getExtension(CoreExtension::class)->setTimezone('Europe/Paris'); |
|||
$twig->getExtension(CoreExtension::class)->setTimezone('Europe/Paris'); |
|||
$twig->addExtension(new StringExtension()); |
|||
return $twig; |
|||
} |
|||
|
|||
public function render(string $twig_file, array $data = []): string { |
|||
return $this->twig->render($twig_file, $data); |
|||
} |
|||
|
|||
public function generate(string $twig_file, array $data = []) { |
|||
$content = $this->render($twig_file, $data); |
|||
$file = preg_replace('/[.]twig$/', '', $twig_file); |
|||
$this->write($file, $content); |
|||
} |
|||
|
|||
public function write(string $file, string $content) { |
|||
file_put_contents($this->output_directory . '/' . $file, $content); |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue