Twig e suas vantagens no projeto
Talvez a maior crítica que fazem ao PHP é a respeito do famigerado “código macarrônico”, uma sequência de HTML, CSS e até JavaScript intercalado com PHP, uma bagunça que é terrível de dar manutenção. Mas quem programa ao melhor estilo “PHP: The Right Way” é gente de bem e não faz esse tipo de barbaridade (rs), pois é perfeitamente possível utilizar PHP puro e deixar a lógica com uma boa separação das views, mas isso ainda implica e ter um documento .php, alguns if’s, else’s e echo’s... ou no mínimo algumas short tags (= ?>).
Mas para quem quer ir além e ter zero PHP e a paz de espírito de um documento .html e ainda ter um site dinâmico, a solução é simples e passa em colocar uma Engine Template em seu projeto.
O que é uma Engine Template?
Engine Template é uma ferramenta que possibilita a separação da lógica de apresentação (HTML) da lógica de negócios (PHP), tornando assim o código ainda mais limpo.
Um exemplo muito conhecido e usado na comunidade PHP é o Twig Template, que pode ser implementado com PHP puro ou com frameworks como Laravel, Codeigniter, Symfony (criadores do Twig), entre outros.
Como mostrar Dados nas views?
É inevitável tem alguma manipulação de dados nas views, e no caso do Twig, ele consegue ter acesso a variáveis enviadas diretamente dos Controllers para as Views por meio de arrays associativos, tratados com uma DSL (Domain-Specific Language), que basicamente é uma linguagem do próprio template altamente abstraída e acessível até para designers que não são programadores.
Ex.:
Também é possível utilizar os métodos diretamente, adicionando eles ao Twig e depois chamando-os nas views:
Templates como o Twig não são a única forma de ter um sistema compartimentalizado, mas são recomendados, principalmente para aqueles que têm a necessidade de ter um HTML mais limpo, seja por ter uma equipe para cada lado da aplicação e/ou organização da arquitetura do software.
Referência: https://twig.symfony.com/