Neste artigo nos aprofundaremos em conceitos sobre programação organizada e treinaremos de forma prática o uso da classe FastTemplate em situações mais complexas envolvendo criação de páginas a partir de modelos HTML.
Uma situação muito comum é o aproveitamento de um único script para interceptação de dados e processamento ao mesmo tempo. Para ilustrar esta prática, vamos resolver o seguinte estudo de caso: queremos um formulário que em sua forma original sirva de interface para entrada de nome e email do usuário e quando submetido, processe e mostre os dados na tela.
Uma vez que adotamos o FastTemplate como classe para modelos HTML, vamos seguir a seguinte linha de raciocínio:
1. se o nome e/ou email ainda não foram preenchidos então carregue o modelo HTML do formulário para entrada de dados senão carregue o modelo HTML que exibe as informações do usuário na tela Vamos ao código:
<!-- templateMultiFace.php --> <? include 'class.FastTemplate.php3'; // carregar classe
$model = new FastTemplate('./modelos'); // repositório de modelos
if (!$nome && !$email) { // se o usuário ainda não preencheu o formulário, carregar este modelo $model-> define ( array ( 'pagina' => 'formulario.html' ) ); } else { // se já preencheu, carregue modelo que mostra os dados na tela $model-> define ( array ( 'pagina' => 'exibirDados.html' ) );
$model->assign('{NOME}',$nome); // misturar valores das variáveis com $model->assign('{EMAIL}',$email); // as variáveis do modelo }
$model->parse('OUTPUT','pagina'); // atribua ao handle OUTPUT a saída do processamento do modelo
$model->FastPrint('OUTPUT');// imprima na tela o conteúdo de OUTPUT ?>
[3] Comentário enviado por redstyle em 19/07/2004 - 02:49h
O que não intendi é o seguinte:
Então quando o navegador da pessoa chamar a página ./modelos/exibirDados.html ele vai chamar o arquivo templateMultiFace.php para substituir as ocorrências de {NOME} etc?
Ou tudo que é processado dentro do diretório ./modelos vai chamar a chasse templateMultiFace.php
Se for isso então o arquivo templateMultiFace.php será muito grande caso tiver que mudar muitas variáveis?
[4] Comentário enviado por jllucca em 02/09/2004 - 23:11h
Redstyle,
não e não. Quando voce acessa o templateMultiFace.php ele vai alterar o {NOME} que esta em ./modelos/exibirDados.html. Mas, se tu chamar o exibirDados nada vai ocorrer. Porque voce estara vendo somente o template.
O diretorio ./modelos nunca chama o PHP, o que ocorre é o contrario. O arquivo PHP que utiliza os arquivos de ./modelos.
Sobre o PHP, crescer conforme vai se tendo mais variaveis é a realidade :) hehehe
[5] Comentário enviado por removido em 22/12/2005 - 11:48h
Olá,
Muito bom esse artigo. Com certeza vou usar.
O único problema é que não vi como destroi-se os objetos que instancio nos meus códigos PHP. Eu, por exemplo, já tive inúmeros problemas de estouro de memória utilizando esse recurso. Me parece que o PHP, até a versão que eu conhecia, não oferecia um suporte muito consistente para esse gerenciamento. Alguém sabe se isso mudou?
[6] Comentário enviado por wilbil em 26/01/2008 - 12:26h
e ai galera para quem como eu estava sofrendo com o projeto ja pençando em arrumar a classe do fasttemplate por conta própria achei um site que tem a classe arrumada para php5
vamos la agradeçam ao cara eu fui o primeiro ele merece
falo isso pois tem uma empresa onde trabalho que foram varios projetos
e o principal com 7 anos de desenvolvimento imagina migrar tudo isso
falow
t+
falow fabio faz tempo que não nos falamos mas e correria