2. Smarty PHP para programadores PHP
Agora vou entrar em mais detalhes técnicos, como instalar, configurar e sair usando.
2.1 Instalação
Primeiro baixe a ultima versão do smarty, descompacte todas as pastas. Eu crio dentro
da minha aplicação uma pasta smarty onde tem que ter a pasta libs para funcionar corretamente o smartyPHP.
2.2 Organizando a casa
/ - raiz, onde estarão os seus aplicativos em php
/cache - caso queira aplicar cache na sua aplicação esta é a pasta onde ficará o arquivo de cache (chmod 755)
/configs - pasta onde ficará os arquivos de configurações, do tipo, nome do site(title) entre outras coisas.
/templates - pasta onde o WebDesigner vai trabalhar, mais propriamente dito como o diretório dos templates (HTML's)
/templates_c - pasta onde o ficará a compilação do template + php, onde o proprio smarty irá gerar os arquivos ali listados. (chmod 755)
2.3 Configuração básica
Vou mostrar de uma forma mais complexa/simples para que depois o desenvolvimento do site funcione mais tranquilamente, fez uma vez nao
há necessidade de alterar tudo novamente.
«---- config.php ----»
// Diretório onde vão estar as bibliotecas do smarty
define(SMARTY_DIR,'/sitepedidos/smarty/libs/');
// Biblioteca do smarty
require_once(SMARTY_DIR.'Smarty.class.php');
/* Função de construção do objeto
Setando alguns parametros para o smartyPHP
caching -> habilitando o cache
cache_lifetime -> tempo de vida do cache
compile_check -> sempre antes de compilar para a tela ele faz uma checagem dos fontes
debugging -> mostra ao WebDesigner as variáveis que ele poderá utilizar
*/
function Smarty_Site() {
$sBasedir = '/sitepedidos/';
$this->Smarty();
$this->template_dir = $sBasedir."templates/";
$this->compile_dir = $sBasedir."templates_c/";
$this->cache_dir = $sBasedir."cache/";
$this->config_dir = $sBasedir."configs/";
$this->caching = false;
$this->cache_lifetime = 0;
$this->compile_check = true;
$this->debugging = true;
}
/* Função de display, melhor dizendo o relacionamento entre o TPL e o PHP */
function show(){
preg_match('/^(.*)\.php$/', basename($_SERVER['SCRIPT_FILENAME']), $r);
$tela = $r[1];
$this->assign('tela', $tela.".tpl");
$this->display('fixo/site.tpl'); // Vou utilizar o site.tpl como a cara do site, mais para frente eu explico melhor.
}
}
// Criação do objeto e pronto para ser utilizado.
$smarty =new Smarty_Site();
Agora que já fizemos o nosso arquivo de configuração para o smarty funcionar, vamos fazer o nosso primeiro index.php
«---- index.php ----»
require_once('./config.php');
// Declaracao das variaveis para o webDesigner
$smarty->assign('nome','Rafael Stoever');
$smarty->show();
Feito isso, temos que falar com o nosso webdesigner para ele fazer o template(HTML).
«---- index.tpl (este arquivo vai ficar dentro da pasta templates) ----»
Este é o meu nome: {$nome}
Ah e tem um cara que é o principal, o que nao muda nunca, o site.tpl, esse site.tpl que está configurado lá no nosso config.php é o corpo do site, aquela parte que nunca muda.
«---- index.tpl ----»
{include file=$tela}
E ai está agora conforme o arquivo.php ele vai dar um include no arquivo.tpl ao mesmo tempo que fizeres um php vais programar um template para este.
Simples ? se tiver dúvidas soh comentar.