Organizando projetos com a classe FastTemplate (parte 2)

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.

[ Hits: 23.318 ]

Por: Fábio Berbert de Paula em 19/11/2002 | Blog: https://fabio.automatizando.dev


Parte 1 - Script com duas caras



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
?>
Em seguida, criamos os modelos HTML:
<!-- ./modelos/formulario.html -->
<html>
<body>

<form>
Nome: <input type="text" size="25" name="nome"><br>
Email: <input type="text" size="25" name="email"><br>
<input type="submit" value=" Enviar ">
</form>

</body>
</html>
Modelo de exibição dos dados:
<!-- ./modelos/exibirDados.html -->
<html>
<body>

Olá <b>{NOME}</b>, seu endereço de emai é <b>{EMAIL}</b> e
agora você faz parte do exército dos Cavalheiros de Jedi !!!
Ops, Jedi não, PHPBrasil :)

</body>
</html>
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Parte 1 - Script com duas caras
   3. Parte 2 - Quantidade indefinida de variáveis
   4. Parte 3 - Quantidade indefinida de variáveis
Outros artigos deste autor

Torne-se um DJ usando Linux

Criando gráficos com a classe JPGraph (parte 1)

GitHub Copilot - Inteligência Artificial no NeoVim

Ativando o Modo Noturno via Linha de Comando no GNOME/Wayland

Corretor Ortográfico no Vim - Guia definitivo

Leitura recomendada

Aumente sua produção em PHP

Usando Blocos Dinâmicos com a Classe FastTemplate (Parte 1)

Utilizando PEAR

Método de Newton e PHP

Administrando usuários no GNU/Linux e Samba via web com PHP

  
Comentários
[1] Comentário enviado por guilhermejr em 14/01/2003 - 11:42h

Aqui ta dando sempre o mesmo erro
Warning: Invalid content of \{\} in /usr/share/php/class.FastTemplate.php3 on line 213
que erro é esse?

[2] Comentário enviado por fabio em 15/01/2003 - 10:36h

Não sei, deve ser algum erro de variável no seu código. Se quiser manda ele para meu e-mail: fabio@vivaolinux.com.br

[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?

[]'s

[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

[]'s

[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?

Abraço

[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

http://tonda.czechit.net/2007/07/fasttemplates-optimized-for-php5.html

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


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts