Templates em PHP, só se for com PHPTAL

Para os desenvolvedores PHP segue uma dica de uma ferramenta de templates muito legal!

O PHPTAL é um motor de geração de templates para PHP5 que implementa a sintaxe ZPT (Zope Page Templates) ex.:

<div class="item" tal:repeat="item itemsArray">
    <span tal:condition="item/hasDate" tal:replace="item/getDate"/>
    <a href="${item/getUrl}" tal:content="item/getTitle"/>
  <p tal:content="value/getContent"/>
</div>

Enquanto a maioria dos desenvolvedores continua a usar tags ASP/JSP/PHP como principal linguagem para seus templates, a comunidade Zope teve a ótima idéia chamada TAL. A idéia era mover a ações para dentro de atributos XHML ao invés de usar outras tags e elementos.

Essa é grande vantagem da sintaxe do ZPT, sua simplicidade, não existem novas tags para aprender, e sim novos atributos que podem ser adicionados a qualquer tag XHTML e que atribuem comportamentos específicos. Esses novos atributos possibilitam ações como: condição, definição, repetição, inclusão de attributos, substituição de conteúdo, entre outros.

No exemplo disponível no site do projeto podemos ver o equivalente ao código acima:

<?php foreach ($values as $value): ?>
<div class="item">
  <div class="title">
    <?php if ($value->hasDate()): ?><?=$value->getDate()?><?php endif; ?>
    <a href="<?= $value->getUrl() ?>"><?=
		htmlentities($value->getTitle())
	?></a>
  </div>
  <div class="content">
    <?= htmlentities($value->getContent()) ?>
  </div>
</div>
<?php endforeach; ?>

Nota-se a economia de código fonte que o PHPTAL oferece.

Outra grande vantagem so PHPTAL é que, o tamplates são compilados para código fonte PHP5. Funcionando semelhante a idéia de bytecode em python, onde o código fonte em PHPTAL é compilado para PHP na primeira vez em que for executado, sendo o mesmo somente gerado novamente se o código fonte for alterado.

Abaixo a lista funcionalidades do PHPTAL

  • separação da lógica e apresentação,
  • avisa se você esquecer de fechar uma tag ou se tem erros no template
  • templates limpos e legíveis,
  • fácil integração com editores HTML WYSIWYG,
  • abstração de dados usando um sistema similar a XPath,
  • interessante sistema de macros HTML,
  • sistema de internacionalização integrado (usando gettext),
  • habilidade de substituir expressões XPath por expressões PHP,
  • quase nenhuma perda de velocidade (templates são compilados, grandes expressões podem ser substituídas por código PHP,
  • compatível com aceleradores PHP,
  • mais de quatro anos de suporte da comunidade ZPT,
  • código extensível.

Bom, segue ai a dica para quem quiser um motor de templates interessante e fácil de aprender.
Mais detalhes no site do projeto: http://phptal.org

Até a próxima.

4 thoughts on “Templates em PHP, só se for com PHPTAL

  1. Esse comentário “Para quem ainda usa PHP, ou não tem outra alternativa mais legal como Ruby on Rails ou Python/Django‚Ķ” é meio pesado heim. Merece uma postagem para demonstrar essa “verdade”.

  2. Cara, essa é uma opinião minha. Pra a minha realidade não é mais viável trabalhar com PHP hoje em dia.
    Apesar de já ter trabalhado durante muitos anos com PHP, hoje acho muito mais intuitivo e rápido trabalhar com python/django;
    Mas essa é uma opinião minha. A minha intenção é somente mostrar uma tecnologia de templates para PHP que achei legal de usar. Só isso!

  3. Prezado Alexandre,
    muito justo expressar sua opinião sobre linguagens de programação, mais justo ainda fazer isso no seu próprio blog. Apesar de ser fã de PHP, meu problema com o que você disse foi o fato de comparar PHP (linguagem de programação), com Rails e Django (Frameworks), o que não faz o menor sentido. Se você disser que Ruby e Python são mais legais que PHP ou que o Rails e o Django são mais legais que todos os FW pra PHP, eu calo minha boca, mas o que você afirmou tende a causar confusão entre leigos.
    Espero de não me odeie pelo comentário,
    Atenciosamente

  4. Na verdade não quis fazer comparação nenhuma. Quando comentei sobre PHP, Django e Ruby On Rails eu quis dizer que: para quem usa php (PURO sem nenhum framework) segue a dica de uma ferramenta para templates … até porque qualquer framework web que se preze tem alguma linguagem de templates.

    Para acabar a polêmica vou editar o texto e tirar esse comentário.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*


*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>