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.

Esta entrada foi publicada em php e marcada com a tag , , , , . Adicione o link permanenteaos seus favoritos.

4 respostas a Templates em PHP, só se for com PHPTAL

  1. NELSON COSTA disse:

    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. alexandre disse:

    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. Robson disse:

    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. alexandre disse:

    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>