Smarty é seu amigo
Filed Under (PHP) by Cristian Trentin on 25-06-2009
O Smarty
é uma excelente Template Engine, facilitando assim o desenvolvimento de projetos PHP
e fazendo com que seja mantido um padrão.
Uso Smarty a um bom tempo em meus projetos, com ele é possível fazer um bom uso do conceito MVC, ou seja, separar o projeto em camadas Model, View e Controller (Mas isso é um papo para um outro post).
Mas o Smarty é o único Template Engine para o PHP?
Não, porem é o melhor!
Vamos listar alguns dos itens pelos quais eu uso smarty
- Separar conteúdo lógico de regra de negócio
- Cache
- Instalação e uso muito fácil
- Plugins
- Facilidade de uso (já falei isso)
- Montadores de HTML e CSS alteram o TPL e não o seu PHP
- É possível criar novos métodos para o Smarty, customizando assim a ferramenta para o seu projeto
- Os arquivos não compilados toda vez que executados
- O Smarty é experto o bastante para notar que tem alterações no template e compilar novamente
Outra grande vantagem do uso do Smarty é a manutenção nos seus códigos, digamos que é necessário alterar toda a parte visual do projeto, isso pode ser facilmente resolvido e o melhor sem alterar nada do seu PHP, pois o que irá precisar ser alterado são os TPLs, o contrário também é válido, podendo mudar a regra de negócio sem alterar o visual.
!
A idéia desse post não é lhe ensinar a usar o Smarty, configurar, alterar e sim existem maneiras de facilitar a sua vida no desenvolvimento de códigos PHPs.
Vamos a um exemplo de utilização
/********************************************************************** //Requere o arquivo smarty.inc.php //Seta o nome para o tpl //Display no template
* Arquivo: Index.php *
* Descrição: Arquivo Responsavel por dar um dislpay na index.tpl *
* Data: 23/04/2009 *
* Autor: Cristian Trentin - admderede@gmail.com *
**********************************************************************/
require_once(ROOT."system/include/smarty.inc.php");
$smarty->assign('nome', 'Fulano de tal');
$smarty->display('index.tpl');
?>
Esse é o nosso PHP, note que nele não existe nada de HTML, CSS ou JS, porém podemos notar que existem um $smarty->assign e um #smarty->display, o assign você seta um valor para ser usado no TPL, agora com o display você passa qual é o template a ser compilado. Simples Não?
Mas Cristian e como ficaria o TPL? Esse TPL teria o nome de ‘index.tpl’ e deve estar dentro do diretório templates… diretório? Que diretório Cristian? Calma explico já já.
< html>
< head>
< title>Exemplo de Smarty< /title>
< /head>
< body>
{$nome} //Aqui passamos a variável que irá conter o conteúdo passado pelo php
< /body>
< /html>
Fácil, não? Sim, muito fácil, mas e o diretório templates que você falou? Sim, o Smarty necessita de quatro diretórios, que são chamados por padrão ‘templates’, ‘templates_c’, ‘configs’ e ‘cache’. Certo, mas eu não gostei desse nomes… Posso mudar? A resposta é sim, basta você alterar as propriedades da classe Smarty $template_dir, $compile_dir, $config_dir, e $cache_dir.
Links importantes
Para saber como fazer o download do Smarty![]()
Coisas que facilitam muito a minha vida
- O include
ajuda quando precisamos incluir arquivos padrões para todo o site (menu.tpl, meta.tpl, rodape.tpl) - Esse é o cara -> Date_format
, sim… Você não precisa ficar convertendo a data que recebeu do banco ‘2009-06-25′, esse cara faz isso para você - Html_option
,, muito bom quando precisamos montar um form com campos do tipo ’select’
Cristian, tem mais ??? Sim, muito mais… leia o manual. []s


Realmente Smarty é apaixonante!
Belo post!