Skip to content
Snippets Groups Projects
Commit 86a96dcd authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Possibilité de passer un moteur de template en mode 'debug' (impact dans le...

Possibilité de passer un moteur de template en mode 'debug' (impact dans le moteur twig uniquement pour l'instant).
parent 35c2c119
No related branches found
No related tags found
No related merge requests found
Pipeline #39147 passed
...@@ -3,6 +3,7 @@ CHANGELOG ...@@ -3,6 +3,7 @@ CHANGELOG
7.0.6 7.0.6
----- -----
- Possibilité de passer un moteur de template en mode 'debug' (impact dans le moteur twig uniquement pour l'instant).
- [FIX] Plantage de TinyMCE à cause du `?php` oublié dans les `extended_valid_elements` : retrait car inutile au moteur par défaut de toute façon. - [FIX] Plantage de TinyMCE à cause du `?php` oublié dans les `extended_valid_elements` : retrait car inutile au moteur par défaut de toute façon.
- [FIX] Correction de l'affichage des macros dans le Select2 pour le moteur Laminas. - [FIX] Correction de l'affichage des macros dans le Select2 pour le moteur Laminas.
......
...@@ -11,7 +11,6 @@ use DoctrineModule\Persistence\ProvidesObjectManager; ...@@ -11,7 +11,6 @@ use DoctrineModule\Persistence\ProvidesObjectManager;
use Exception; use Exception;
use Laminas\Mvc\Controller\AbstractActionController; use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Renderer\PhpRenderer; use Laminas\View\Renderer\PhpRenderer;
use Mpdf\MpdfException;
use RuntimeException; use RuntimeException;
use UnicaenPdf\Exporter\PdfExporter; use UnicaenPdf\Exporter\PdfExporter;
use UnicaenRenderer\Entity\Db\Rendu; use UnicaenRenderer\Entity\Db\Rendu;
...@@ -30,6 +29,17 @@ class RenduService ...@@ -30,6 +29,17 @@ class RenduService
public PhpRenderer $renderer; public PhpRenderer $renderer;
protected bool $debugMode = false;
/**
* Active ou non le mode "debug".
* NB : ce mode n'est pas forcément implémenté par le moteur de rendu du template.
*/
public function setDebugMode(bool $debugMode = true): void
{
$this->debugMode = $debugMode;
}
/** Gestion des entités *******************************************************************************************/ /** Gestion des entités *******************************************************************************************/
public function create(Rendu $contenu): Rendu public function create(Rendu $contenu): Rendu
...@@ -124,6 +134,7 @@ class RenduService ...@@ -124,6 +134,7 @@ class RenduService
$templateEngine = $this->templateEngineManager->getEngineForTemplate($template); $templateEngine = $this->templateEngineManager->getEngineForTemplate($template);
$templateEngine->setVariables($variables); $templateEngine->setVariables($variables);
$templateEngine->setDebugMode($this->debugMode);
$sujet = $templateEngine->renderTemplateSujet(); $sujet = $templateEngine->renderTemplateSujet();
$corps = $templateEngine->renderTemplateCorps(); $corps = $templateEngine->renderTemplateCorps();
$contenu->setSujet($sujet); $contenu->setSujet($sujet);
......
...@@ -11,6 +11,7 @@ abstract class AbstractTemplateEngine implements TemplateEngineInterface ...@@ -11,6 +11,7 @@ abstract class AbstractTemplateEngine implements TemplateEngineInterface
use TemplateAwareTrait; use TemplateAwareTrait;
protected array $variables = []; protected array $variables = [];
protected bool $debugMode = false;
public function setVariables(array $variables): void public function setVariables(array $variables): void
{ {
...@@ -23,5 +24,8 @@ abstract class AbstractTemplateEngine implements TemplateEngineInterface ...@@ -23,5 +24,8 @@ abstract class AbstractTemplateEngine implements TemplateEngineInterface
$this->variables = array_merge($helperVariables, $variables); $this->variables = array_merge($helperVariables, $variables);
} }
public function setDebugMode(bool $debugMode = true): void
{
$this->debugMode = $debugMode;
}
} }
\ No newline at end of file
...@@ -5,6 +5,9 @@ namespace UnicaenRenderer\Service\TemplateEngine; ...@@ -5,6 +5,9 @@ namespace UnicaenRenderer\Service\TemplateEngine;
use UnicaenRenderer\Entity\Db\Macro; use UnicaenRenderer\Entity\Db\Macro;
use UnicaenRenderer\Entity\Db\Template; use UnicaenRenderer\Entity\Db\Template;
/**
* Interface des moteurs de rendu.
*/
interface TemplateEngineInterface interface TemplateEngineInterface
{ {
/** /**
...@@ -17,6 +20,12 @@ interface TemplateEngineInterface ...@@ -17,6 +20,12 @@ interface TemplateEngineInterface
*/ */
public function setVariables(array $variables); public function setVariables(array $variables);
/**
* Active où non le mode "debug" de ce moteur.
* En quoi consiste le mode "debug" concrètement ? Ça dépend du moteur !
*/
public function setDebugMode(bool $debugMode = true): void;
/** /**
* Effectue des vérifications éventuelles concernant le template cible. * Effectue des vérifications éventuelles concernant le template cible.
*/ */
......
...@@ -6,6 +6,7 @@ use BadMethodCallException; ...@@ -6,6 +6,7 @@ use BadMethodCallException;
use RuntimeException; use RuntimeException;
use Twig\Environment; use Twig\Environment;
use Twig\Error\Error; use Twig\Error\Error;
use Twig\Extension\DebugExtension;
use Twig\Loader\ArrayLoader; use Twig\Loader\ArrayLoader;
use UnicaenRenderer\Entity\Db\Macro; use UnicaenRenderer\Entity\Db\Macro;
use UnicaenRenderer\Service\TemplateEngine\AbstractTemplateEngine; use UnicaenRenderer\Service\TemplateEngine\AbstractTemplateEngine;
...@@ -19,10 +20,20 @@ class TwigTemplateEngine extends AbstractTemplateEngine ...@@ -19,10 +20,20 @@ class TwigTemplateEngine extends AbstractTemplateEngine
{ {
$this->twigLoader = new ArrayLoader(); $this->twigLoader = new ArrayLoader();
$this->twig = new Environment($this->twigLoader, [ $this->twig = new Environment($this->twigLoader, [
'debug' => true, // NB : aucun impact si DebugExtension n'est pas activée.
// 'cache' => '/path/to/compilation_cache', // 'cache' => '/path/to/compilation_cache',
]); ]);
} }
public function setDebugMode(bool $debugMode = true): void
{
parent::setDebugMode($debugMode);
if ($this->debugMode) {
$this->twig->addExtension(new DebugExtension());
}
}
public function checkTemplate(): array public function checkTemplate(): array
{ {
throw new BadMethodCallException("Non supporté !"); throw new BadMethodCallException("Non supporté !");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment