Comment forcer la régénération des modèles Twig?

8

Twig génère des classes pour ses modèles. Ces classes sont effectivement des caches en étant écrites sur disque.

D'une manière générale, il n'est probablement pas nécessaire de se soucier des détails de la façon dont les modèles de brindilles sont traités, mais il peut y avoir des cas où les modèles de brindilles doivent être régénérés manuellement. (Similaire à la nécessité du module de reconstruction du registre dans D7)

Si c'est pertinent, je demande parce que je suis coincé avec une erreur qui ressemble à ceci:

Erreur fatale: classe '__TwigTemplate_ddad913164239ac659c2bca09b3a49a5' introuvable dans core / lib / Drupal / Core / Template / TwigEnvironment.php sur la ligne 107

Létharion
la source

Réponses:

6

Vous ne savez pas pourquoi vous obtenez cette erreur spécifique, mais jetez un œil à drupal_flush_all_caches (), qui ne

PhpStorageFactory::get('twig')->deleteAll();

Cela dit, je ne sais pas si cela résoudra votre problème, car je n'ai jamais vu cette erreur, je ne sais pas comment cela pourrait finir par attendre une classe qui n'est pas là.

Berdir
la source
Il est intéressant que vous disiez que vous ne l'avez jamais vu, comme je l'ai déjà vu auparavant. Ensuite, je viens de réinstaller, et cela a fonctionné. Maintenant, même cela n'aide pas.
Letharion
2
Dans ce cas, cela s'est avéré être une mauvaise propriété du fichier de paramètres ... Merci pour le message d'erreur utile Drupal;)
Letharion
1
Dans mon cas, ce sont les autorisations du dossier de fichiers publics qui n'ont pas été définies correctement. J'ai installé le site Web à l'aide de drush, qui dans mon environnement local est un utilisateur différent de celui du serveur Web. La solution consistait à ajuster les autorisations de dossier.
batigolix
1
Via drush:drush ev '\Drupal\Core\PhpStorage\PhpStorageFactory::get("twig")->deleteAll();'
Tim
1

Je voyais cette erreur Twig dans mon journal d'erreurs, lorsque j'essayais d'accéder à un site Drupal 8.x après avoir été installé avec drush avec drush si --db-url=mysql://root:root@localhost/mysite -y. Donc, pour corriger le problème, encore une fois avec drush, videz simplement le cache:

drush cr all 

De plus, après cela, si votre nouveau site Drupal 8.x ne semble pas avoir de styles CSS, cela est probablement dû au fait que l'utilisateur apache / httpd n'a pas les autorisations d'écriture sur sites / default / files.

alexkb
la source