PHPTAL - Template Attribute Language para PHP5
Como meu primeiro Post específico sobre PHP, vou dar uma boa dica aos desenvolvedores Web.
Qualquer Desenvolvedor de Web Sites dinâmicos, use PHP, ASP, JSP ou Ruby, já se deparou com um fator importante que muitas vezes é um problema… Separar a Lógica da Aplicação do Design de Templates. Assim como é extremamente incômodo para programadores web se peocuparem com o design das páginas (experiência própria) a maioria dos bons designers de templates não conhecem, ou não se interessam por aprender PHP ou outra linguagem de programação.
Quem já se deparou com este dilema provavelmente já procurou por linguagens próprias de templates, desenvolvidas para separar a lógica do design da aplicação. Uma destas linguagens, a qual inclusive tem um espaço no portal php.net, é a Smarty Template Engine (http://smarty.php.net), trata-se de uma classe php que interpreta os arquivos de template (*.tpl), e grava o resultado num cache, para evitar que o trabalho se repita desnecessáriamente. O problema é que: 1. o designer precisa aprender Smarty, o que nao deixa de ser uma linguagem de programação; 2. os templates desenvolvidos para ela servem apenas para PHP.
Recentemente me deparei com uma extenção para o PHP5 que facilita, e muito, o trabalho dos designers. Trata-se do PHPTAL (http://phptal.motion-twin.com), que é uma imlementação do ZPT (Zope Page Templates), ou seja, uma biblioteca de templates XML/XHTML para PHP.
Antes de falar mais sobre como a TAL funciona, vamos observar um fragmento de código de uma template PHP:
Usando a sintexe alternativa do PHP:
<?php foreach ($values as $value): ?> <div id=”item”> <div id=”title”> <?php if ($value->hasDate()): ?> <?=$value->getDate()?> <?php endif; ?> <a href=”<?= $value->getUrl() ?>”> <?=htmlentities($value->getTitle())?> </a> </div> <div id=”content”> <?= htmlentities($value->getContent()) ?> </div> </div> <?php endforeach; ?>
Agora, usando o PHPTAL:
<div id=”item” tal:repeat=”value values”>
<div id=”item”>
<span tal:condition=”value/hasDate”
tal:replace=”value/getDate”/>
<a tal:attributes=”href value/getUrl”
tal:content=”value/getTitle”/>
</div>
<div id=”content” tal:content=”value/getContent”/>
</div>Usando uma outra biblioteca de templates, o código não ficaria muito diferente do primeiro exemplo, apenas um pouco mais simples de entender. Já o PHPTAL provê uma template com tags XHTML e propriedades XML, sem inserir código alienígena à template.
As propriedades TAL podem parecer um pouco estranhas quando iniciamos com a linguagem. Vamos alterar o código da template um pouco:
<div id=”item” tal:repeat=”value values”>
<div id=”item”>
<span tal:condition=”value/hasDate”
tal:replace=”value/getDate”>
2005-01-28
</span>
<a href=”sample.html”
tal:attributes=”href value/getUrl”
tal:content=”value/getTitle”>
My item title
</a>
</div>
<span id=”content” tal:content=”value/getContent”>
This is a sample content which is replaced by the
real content when the template is run with real
data.
</span>
</div>Assim podemos adicionar textos exemplos ou explicativos as tags, que serão substituidos pelo conteúdo das variáveis. Esta é, na minha opinião, uma das melhores vantagens do PHPTAL sobre outras bibliotecas de templates. Pois permite que os templates seja visualizados por qualquer navegador mesmo sem um servidor PHP.
Vejamos algumas vantagens em se utilizar PHPTAL:
- separação da lógica da apresentação;
- avisa se sua tag html estiver mal formatada ou não estiver fechada;
- sem mais htmlentities();
- templates bastante limpas e legíveis;
- possibilidade de inserir textos exemplos para pré-visualizar a template sem um servidor PHP;
- integração fácil com editores HTML visuais;
- sistema de internacionalização (i18n) integrado;
- pouquíssima perda de velocidade;
- suporte da comunidade ZPT (http://zope.org);
- portabilidade, os templates produzidos com TAL podem, geralmente, ser utilizados com qualquer linguagem (PHP, ASP, etc.).
O PHPTAL funcionará apenas com PHP5, por causa das funcionalidades de Orientação a Objeto adicionadas no PHP5, e não terá suporte às versões anteriores da linguagem. Mas como diz o desenvolvedor da biblioteda: “Forget PHP4″.
Não vou extender mais o artigo mas, se desejarem posso postar mais conteúdo sobre o PHPTAL aqui. Para quem quiser discutir a biblioca apenas comente. Podemos também montar um grupo para traduzir o Manual do PHPTAL para português.
Fontes: http://phptal.motion-twin.com, http://zope.org.
Se você gostou deste artigo, inscreva-se em meu RSS feed!



Olá Paulo, por motivos profissionais estou a entrar no mundo do php, e de facto, para quem está “por fora” das tecnologias web, isto é um bocado confuso, eu gostaria de saber se existe alguma ferramenta (ide) que nos permita desenhar gráficamente os templates com recurso a phptal?
cumprimentos
Carlos
Comment by Carlos porto — January 4, 2008 @ 6:54 am
Não tenho usado PHP TAL, então estou um pouco desatualizado a respeito. Mas a maioria das IDEs no mercado (Zend, Eclipse, etc.) possibilitam que você mesmo faça seus templates (falo de templates de linguagem, pra usar com autocompletar), assim você pode cirar os templates para as propriedades ‘tal:’ e etc.
Mas não custa nada dar uma procurada, pois devem haver plugins para TAL para Eclipse, Zend ou até Dreamweaver (procure por TAL, pois a syntaxe é a mesma, esteja você usando PHP ou qualquer outra linguagem).
Comment by diovani — January 4, 2008 @ 9:30 am