Caminho de Navegação Php / Artigos / Criando sua classe de templates

Php

 

Nenhuma avalição
Indique ao Ueba Indique ao BlogBlogs Indique ao Delicious Indique ao Technorati Indique ao Google Bookmarks Indique ao Newsgator
TAGS
  • Máximo de 100 tags
  • Cada tag deve ter até 20 caracteres.
  • Separar as tags com virgula. Ex.: php, sql, html, xml, fireworks
COMENTAR

INDICAR
Nome do amigo: E-mail do amigo: Comentário:
REPORTAR ERRO Descreva o erro:

Criando sua classe de templatesPostada em: 13/09/2004

Preceptor
Por: Preceptor Nº de Visualizações: 3789.

Lista de páginas desta publicação:




Bom, primeiro pensamento a considerar: Por que fazer outro gerenciador de templates, se já existem antos, já está comprovado seu excelente funcionamento (como é o caso de PHPLib, PHP FastTemplate, etc), e, supostamente, são fáceis de usar?


Um pouquinho de história: Não tenho muito tempo de PHP, muito embora, já tenha um punhado de cabelos brancos, com outras linguagens :) Quando tentei entender e utilizar o funcionamento das bibliotecas de templates já existentes, apesar de haver assumido as enormes vantagens de utilizar estes recursos, assim como o uso de OOP com PHP, mas me choquei com dois pequenos inconvenientes: Primeiro: não entendia bem o que havia "por debaixo" destas funções e destes objetos, ou a própria forma correta de aplicar a técnica, e, segundo: não conseguia abstrair bem, sequer os princípios mais intrínsecos da própia orientação a objetos de PHP.

Vivo (e trabalho), a 3 anos, no Paraguay, onde, ao contrário do que muitos pensam, não temos acesso fácil a livros e tecnologias (sim, havia, alguns anos atrás, mas as coisas mudaram...). Apelei para internet. Lí artigos, documentações, scripts, blogs, e tudo mais o que encontrava, mas sempre, como é natural, cada autor apresenta seu próprio estilo, sua própria óptica.

Decidí que, para conseguir entender um pouco mais do que era o trabalho destes programadores, como funcionava o tema todo, etc., iria construir meu próprio "parseador" para templates. Me armei de paciência, café, bom humor, e outras indispensáveis companhias, e... funcionou!!!

Como verão adiante, é um código bastante simples, realmente funciona, e, sem nenhum custo adicional, permite absorver, a partir de outro ponto de vista, mais algumas coisinhas de OOP para iniciantes (observe-se que eu também sou um iniciante eterno).


O que é um template?
Sim, já sei! Polêmica de novo! Bom, para evitar discussões desnecessárias, vamos por esta observação: NO MEU PONTO DE VISTA, um template é uma técnica que permite ao programador separar seu código "pesado", lógico, da parte mais visual e "soft" do projeto, que é o design HTML.

E porque separar? Observe um programa comum de PHP, feito com tudo misturado (lógica e HTML), e terá a resposta. Um programador mais "purista" olha e diz: "Que feio isto! um monte de comandos HTML, que não obedecem a nenhuma estruturação do sistema, junto com o restante :(". Um webmaster que olhe o mesmo programa vai dizer: "Arrrrgh! Não posso entender isto! Comandos HTML (lindos), misturados com um monte de linhas de programas. Ininteligível. Ninguém poderá dar manutenção nesta coisa!".

Agora, com um sistema de template, você cria seu programa, e, à parte, usa arquivos que são quase só HTML. Se você não for um especialista em HTML, poderá desenhar seu código visual, apenas com o mínimo necessário para que o sistema possa ser, digamos, apresentável. Se for um especialista, nada o impede de "complicar", como queira, seu HTML, colocando javascript, css, e coisas assim.

O importante é que, como a parte visual está separada da parte lógica, quando quiser alterar suas páginas, somente terá que preocuparse com seu HTML, sem medo de tocar, como normalmente acontece, naquela linhazinha que não parecia importar, mas que faz com que todo o seu sistema deixe de funcionar e te dá duas horas de dor de cabeça para deixar como era antes (não faz parte do tema, mas, provavelmente, você ainda não tinha feito backup, não é??? Que feio!!! :))

Além disto, seu código (tanto o lógico, como o HTML) será mais agradável, visualmente, mais flexível, e mais adaptável.


Usando include

- Ah! Como fazemos?

A primeira coisa que podemos fazer, é, simplesmente separar o código em dois, sendo que o que chama comandos HTML fica em um arquivo, e o código PHP puro em outro. Para inserir o HTML dentro do PHP, utilizamos "include". Isto não é uma técnica muito bonita :) mas funciona.

Por exemplo, se você tem seu "pseudo" código HTML em um arquivo chamado mypage.tpl, e seu PHP em page.php poderá incluir, como abaixo:


Observação importante:
Polêmica de novo :) Como vão ver mais adiante, meus comentários e nomes de arquivo, geralmente são em inglês (ingles de tarzan "mim fazer..."). O motivo, para mim, é simples:

- Apesar dos puristas da lingua, e dos bairristas, que vão dizer que deve estar bem documentado em português, eu acho que, como já temos a linguagem (PHP ou HTML, no caso) em inglês, fica mais claro e compreensível.

- Também podemos considerar que, universalmente, já se está aceitando que os programas estejam todinhos em inglês.

- Se, algum dia (rara possibilidade) algum de meus programas interessar a algum distante país "por aí" :) , minha documentação vai ser mais fácil.

- Aos que dizem ser difícil entender inglês, um conselho (grátis): Aprende-lo, já!!! Vai ser difícil conseguir qualquer boa posição na área, sem conhecimento, ainda que básico, como o meu, da lingua inglesa.

- Finalmente, eu trabalho em um pais em que se fala espanhol. Então, já tenho outros puristas que diriam que, se estou no Paraguay, meus comentários e arquivos deveriam estar em espanhol. Vai que um dia destes, vou para a China, ou Japão ...



conteúdo de mypage.tpl


<html>
<body>
<title>minha página</title>
<center>Esta é minha página HTML</center>
<hr />
 



conteúdo de page.php


<?
//normal php code

include ("mypage.tpl");

// normal php code
?>
 




Sim, já dissemos isto! Muito feio, horrivel! Mas funciona!

Hummmmm! E se colocamos SOMENTE o código HTML em um arquivo de template. Pode ser que funcione! E, se podemos fazer isto, talvez seja possível que parte de nosso script possa até, entender alguma de nossas variáveis
Preceptor
Enviado por Preceptor em 27 de maio de 2008 Preceptor cara muuito boas suas matérias, estou um pequeno problema, para atualizar minha tabela, me ajuda........rss valew.vou postar no forum ok

Preceptor
Enviado por Preceptor em 27 de maio de 2008 Preceptor, cara consegui atualizar minha tabela, faltava um pequeno detalhe..rsss t +