+3

Classe de template muito simples e facil de utilizar.

criado por Sergio A. Pohlmann .'. em 29/10/2009 9:46am
Muitos programadores já estiveram brigando com sistemas e classes de templates. Eu também, é claro!
Lá por 2003 escreví uma classe de template, que divulguei no phpbrasil, e que teve muitas opiniões dos leitores, as quais levei em conta para melhorar a classe.
Desde então uso esta classe para meus sistemas, e não tenho tido problemas com ela. É uma “mão na roda” tão grande, que praticamente já não programo php sem ela :).

Como tenho uma dívida dupla com o phpbrasil (uma porque prometí ao João que ia voltar a publicar, e outra para retribuir as opiniões que tanto me serviram), volto ao tema, publicando a classe completa, e explicando seu funcionamento e uso.

Primeiro, vejamos que vantagens se pode obter ao utilizar uma classe assim, tão simples:

- Simplicidade extrema - Uma simples classe, muito leve, que pode ser utilizada para qualquer tipo de página.
- Configuração zero – Em principio, você não precisa configurar nada. Mas se desejar, pode fazer alguns “truquezinhos” interessantes, com um mínimo de esforço.
- Isolação excelente do código PHP do HTML. Seu programa fica bonitinho, com cara de PHP puro (sem tags, echos o qualquer coisa parecida).
- I18n – Isso mesmo: Internacionalização fácil!!! Já esteve horas quebrando a cabeça para traduzir e manter uma página. Seus problemas acabaram! :)
- Variaveis – Teu HTML agora pode conter variaveis, que serão avaliadas em tempo de execução e interpretadas corretamente.
- Javascript transparente – Quando precise usar javascript, pode seguir fazendo-o desde um arquivo externo, ou mesmo incluir parte do código dentro do arquivo de template.

Nesta primeira parte, me dedicarei a instalação, e uso dos recursos mais simples.

Instalação:

Instalar esta classe é super fácil: Busque a mesma aqui no phpbrasil:
http://www.phpbrasil.com/script/MP56ekxX3AK/y_template

Copie-a no seu site e inclua a chamada da mesma no seu programa.
Eu costumo utilizar um diretorio “include” onde coloco minhas classes, e um diretorio “templates”, onde coloco os templates. Considerando que você fará algo parecido, copie a classe Y_Template.class.php para o diretório “include”.

Uso:

Agora, vamos a um exemplo claro e direto:

Versão convencional:

<html>
<body>
<?php
		$title="Nome do Site";
		$name="Empresa XXXXX";
		$author="Sergio Pohlmann &lt;sergio@ycube.net&gt;";
		echo "<center>";
		echo "<title>$title</title>";
		echo "<h1> $name </h1>";
		echo "<h2> $author </h2>";
		echo "<hr />";
		
		$client=array("Joao","Pedro","Augusto");
		$phone=array("09878 877776","123927363","0092839891");
		echo "<table border=1>";
		echo "<tr>";
		echo "	<th>Cliente</th>";
		echo "	<th>Telefone</th>";
		echo "</tr>";
		for( $x=0; $x<count($client); $x++ ){
			echo "<tr>";
			echo "	<td> $client[$x] </td>";
			echo "	<td> $phone[$x] </td>";
			echo "</tr>";
		}
		echo "</table>";
?>
</body>
</html>



Esta é uma página “boba” que faz um cabeçalho, e uma tabelinha de clientes, com seus respectivos telefones (que estão armazenados em um array). Observe a confusão de HTML misturado com PHP. Além de feio, o código fica muito mais difícil de manter (em especial se é um sistema grande).

Agora vamos transformá-la em uma página com template. Primeiro, crie um arquivo para o template (digamos que seja “templates/teste.html”). O conteudo será o de uma página, mas obedecendo a algumas regrinhas básicas.

Comentários:

Mostrando 1 - 2 de 2 comentários
thiago disse:
07/02/2010 3:42pm (~14 anos atrás)

Recomendadisimo este Scritpt super simples so un arquivo sim (So un arquivo) nada que ver con Smarty etc

Eu o uso ja faz un tempo en guosto muinto agora en un projecto de investigação aplicada bastante grande con soporte a i18n fornecido por Y_Template
Mais info aqui: http://gurskiide.blogspot.com
16/12/2009 3:13am (~15 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)