Smarty é seu amigo

Filed Under (PHP) by Cristian Trentin on 25-06-2009

O Smarty Link Externo - Abre em outra Janela é 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


/**********************************************************************
* Arquivo: Index.php *
* Descrição: Arquivo Responsavel por dar um dislpay na index.tpl *
* Data: 23/04/2009 *
* Autor: Cristian Trentin - admderede@gmail.com *
**********************************************************************/

//Requere o arquivo smarty.inc.php
require_once(ROOT."system/include/smarty.inc.php");

//Seta o nome para o tpl
$smarty->assign('nome', 'Fulano de tal');

//Display no template
$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

Instalação do Smarty

Manual 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

Comentários:

(1) Comentário

Manda bala no seu comentário