Como forçar a regeneração de modelos Twig?


8

Twig gera classes para seus modelos. Essas classes são efetivamente armazenadas em cache, sendo gravadas em disco.

De um modo geral, provavelmente não é necessário se preocupar com os detalhes de como os modelos de twig são manipulados, mas pode haver casos em que os modelos de twig devem ser gerados manualmente novamente. (Semelhante à necessidade do módulo de reconstrução do Registro em D7)

Se for relevante, estou perguntando porque estou com um erro parecido com este:

Erro fatal: Classe '__TwigTemplate_ddad913164239ac659c2bca09b3a49a5' não encontrada no core / lib / Drupal / Core / Template / TwigEnvironment.php na linha 107

Respostas:


6

Não sei por que você recebeu esse erro específico, mas veja drupal_flush_all_caches (), que faz

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

Dito isto, não tenho certeza se isso resolverá o seu problema, pois nunca vi esse erro, não sei como isso pode acabar esperando uma classe que não existe.


Interessante que você diz que nunca viu, como já vi antes. Então eu apenas reinstalei, e funcionou. Agora nem isso ajuda.
Letharion

2
Neste caso, este acabou por ser ruim a propriedade do arquivo de configurações ... Obrigado pela mensagem de erro útil Drupal;)
Letharion

11
No meu caso, foram as permissões da pasta de arquivos públicos que não foram definidas corretamente. Instalei o site usando drush, que em meu ambiente local é um usuário diferente do servidor da web. A solução foi ajustar as permissões da pasta.
batigolix

11
Por drush:drush ev '\Drupal\Core\PhpStorage\PhpStorageFactory::get("twig")->deleteAll();'
Tim

1

Eu estava vendo esse erro do Twig no meu log de erros ao tentar acessar um site do Drupal 8.x depois de ter sido instalado com drush drush si --db-url=mysql://root:root@localhost/mysite -y. Portanto, para corrigir o problema, novamente com drush, basta limpar o cache:

drush cr all 

Além disso, depois disso, se o seu novo site Drupal 8.x não parecer ter nenhum estilo CSS, é provável que o usuário apache / httpd não tenha permissões de gravação nos sites / padrão / arquivos.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.