Usando a função eval
por thiaguimmm

Um simples sistema de templates usando a função eval. Para quem está iniciando e gostaria de aprender a organizar seus códigos separando o código PHP do código HTML com templates, essa é uma boa alternativa.



Para começar você deve decidir se vai criar uma pasta para guardar seus templates, ou se vai deixar seus templates (*.tpl) na mesma pasta que se encontra os scripts que usarão o template.

Decidido isso, vamos mostrar um exemplo simples de template chamado: index.tpl


<!-- início -->
<html>
<head>
  <title>$titulo</title>
</head>
<body>
  $body
</body>
</html>
<!-- fim -->


Explicando o index.tpl

- a tag $titulo vai receber a variável $titulo que será definida no script php que vai usar este template (neste artigo como exemplo seria o script index.php), e vai por o valor da variável $titulo no título, através das tags .

- a variável $body também receberá o valor definido pelo script php que vai usar este template (neste artigo como exemplo seria o script index.php) e irá imprimir o valor da variável dentro das tags , ou seja, o que você irá ver na página!

Agora vamos criar o script php que usará o template criado anteriormente, digamos que seja: index.php


<!-- início -->
<?php
$titulo 
"Sistema de Templates - eval";
$body "<li>Esse é o meu primeiro script php usando o sistema de templates eval.</li>";
define("INDEX"addslashes(implode(""file ("index.tpl"))));
$template=INDEX;
eval(
"\$pag= \"$template\";");
echo 
$pag;
?>
<!-- fim -->


Explicando o index.php

- a variável $titulo definida como "Sistema de Templates - eval" e a variável $body definida como "
  • Esse é o meu primeiro script php usando o sistema de templates eval.
  • " serão enviadas ao template do index.php (neste artigo como exemplo seria o template index.tpl).

    - define("INDEX", addslashes(implode("", file ("index.tpl")))); Esta linha define INDEX com o arquivo template já tratado para ser utilizado pela função eval().

    - $template=INDEX; A variável $template recebe o valor de INDEX para que seja utilizada na função eval() propriamente dita.

    - eval("\$pag= \"$template\";"); A função eval() seta a variável $pag já com o template com todos os valores definidos pelo script php.

    - echo $pag; Imprime a variável $pag que agora é o template + as variáveis, logo, a página completa.

    Bem, espero ter acrescentado um pouco mais de conhecimento para vocês iniciantes ou não, achei essa função interessante e bem simples, a vi em algum lugar e começei a usar, como está sendo muito útil para mim que sou iniciante, espero que seja útil para você também.

    Bem, esse é meu primeiro artigo, qualquer dúvida, crítica ou sugestão por favor, comentem. É claro algum erro que encontrarem, me avisem para que eu verifique.

    Obrigado,
    Thiago Fraga
    thiaguimphp@yahoo.com.br