Back-End

9 ago, 2011

Por que eu uso Smarty: o PHP é uma linguagem feia de templates

Publicidade

Houve um debate aqui sobre a utilidade do Smarty como uma ferramenta de desenvolvimento.
Foi desencadeada (mais uma vez) pelo lançamento (ou pelo menos pela nova percepção)
do nosmarty.net. Eu comentei:

Não entendo como ZF ou
Symfony ou qualquer framework possa ser uma “alternativa” para o Smarty. Smarty
não é um framework – é simplesmente um mecanismo de template. Ele não deveria
ser usado para outra coisa a não ser para o componente da camada de visualização da
sua aplicação MVC. Como qualquer outro software, ele tem uma curva de
aprendizado e uma certa quantidade de peculiaridades. Usar o Smarty não garante
um bom design – isso ainda precisa ser gerenciado por programadores que tenham
mais experiência do que escrever um programa “Hello, world!” e ler um
tutorial. Acredito que esse fato tem estado por aí desde
2011, e ainda é usado como uma prova para sua utilidade dentro da
comunidade. Se o Smarty for utilizado da maneira correta, não vejo por que ele
não possa ter seu lugar dentro do arsenal de ferramentas que os desenvolvedores
utilizam.

Ele foi combatido por Paul M.
Jones
com:

Na minha opinião, não
existe uma maneira correta de utilizar o Smarty. Ele é a solução para um
problema mal indicado. Penso que deveríamos ter que elaborar mais sobre isso em
outro post, mais longo. Ah, mas eu já fiz isso! http://paul-m-jones.com/?p=273

Eu compreendo esse argumento, no entanto,
eu ainda tenho uma razão para usar o Smarty: o PHP é uma linguagem feia de
templates. Eu usei o Smarty e o Symfony (o qual conta com a sintaxe
alternativa
do PHP
para templates) e ainda prefiro o Smarty.

Os exemplos no nosmarty.net geralmente
mostram uma instância de ecoar uma variável. Nesse caso, é claro, eu consigo
ver – por que usar um sistema de templates pesado que demora mais para analisar
e pode ser terrível para configurar e administrar. No entanto, se você estiver
olhando para uma porção da página html que tem que dar saída par variáveis
múltiplas, o Smarty é bem mais simples.

     SMARTY:
<td>Name</td><td>{$name}</td>
<td>Email</td><td>{$email}</td>
<td>Phone</td><td>{$phone}</td>

PHP:
<td>Name</td><td><?php echo $name; ?></td>
<td>Email</td><td><?php echo $email; ?></td>
<td>Phone</td><td><?php echo $phone; ?></td>

Quando você começa a repetir <?php …
?> em todo lugar, ele fica bastante redundante e, francamente, feio.

Talvez o meu uso do Smarty seja um pouco
egoísta, mas, no final das contas, o estilo de programação e o conforto dependem
da preferência pessoal. A maioria, não todas, das ferramentas de programação
tem a habilidade de serem mal utilizadas. Eu ainda considero o Smarty uma
ferramenta útil no meu arsenal de programação. Apesar de eu não ter usado o
Smarty há mais de 2 anos, usando somente templates PHP (principalmente devido
às convenções de templates da Symfony), eu iria usá-lo novamente alegremente
para ganhar novamente templates legíveis. 

?

Texto original disponível em http://www.dotevan.com/2009/02/05/why-i-use-smarty-php-is-an-ugly-templating-language/