Sistema de plantillas PHP

A la hora de crear una web existen aquellos programadores que les gusta tener el diseño y la logica separados (separar php de html), para eso recurren a sistemas de plantillas como smarty que pueden resultar engorrosos porque hay que aprender la sintaxis de estos.

Dando vueltas por la web encontre esta pequeña clase que hace basicamente lo mismo que smarty y otros sistemas de plantillas pero es mucho mas facil de manejar:

clase_plantilla.php

<?php
//esta es la clase
class TemplateClass{
	//Declaraciones
	
    private $_dir   		= 'plantillas/'; //carpeta de los archivos .tpl (los templates)
    private $_file_ext		= '.tpl'; //formato de los templates, (default = .tpl)
    private $_vars		= array(); //variables a transformar
    private $_delimiters 	= array('{', '}'); //limitadores para saber donde tiene que buscar (ejemplo = {ejemplo})
	
    public function Assign($name, $value){
        if(!array_key_exists($name, $this->_vars))
            $this->_vars[$name] = $value; 
    }
	public function GetAssign($name){
		return $this->_vars{$name};
	}
    public function Template($file){
		if( $output = @file_get_contents($this->_dir.$file.$this->_file_ext)){ 
			foreach($this->_vars as $name => $value){
				$output = str_replace($this->_delimiters[0].$name.$this->_delimiters[1], $value, $output);
			}
			return $output;
		}
		else 
			die("La plantilla no existe."); 
    }
}
?> 

Problemosla como puedes apreciar al inicio del codigo hay tres valores que podemos modificar la ruta de las plantillas, la extencion y los delimitadores.

Vamos a crear un archivo holaMundo.tpl que contendra el sig. codigo (debe ir dentro de una carpeta plantillas)

<html>
<head>
<title>Mi pagina</title>
</head>
<body>
{variable}
</body>
</html>

ahora fuera de la carpeta plantillas junto con el archivo clase_plantilla creamos el siguiente archivo:

holaMundo.php

<?php
//incluimos la clase
include('clase_plantilla.php');
//iniciamos la clase
$tpl=new TemplateClass();
//reemplazamos {variable} por Hola Mundo
$tpl->assign('variable','Hola Mundo');
//indicamos la plantilla sin extencion solo el nombre
echo $tpl->Template('holaMundo');
?>

Bueno, eso es todo para probarlo ejecutar holaMundo.php
Hola!

Gracias por el aporte.

La verdad es que encuentro a smarty un problema más que una solución (en lugar de 2 líneas de PHP, escribo 4 de smarty), pero esto es mucho más simple, así que, nuevamente, gracias :).
skaparate escribió:Hola!

Gracias por el aporte.

La verdad es que encuentro a smarty un problema más que una solución (en lugar de 2 líneas de PHP, escribo 4 de smarty), pero esto es mucho más simple, así que, nuevamente, gracias :).

La verdad no es nada aqui me han ayudado mucho para perfeccionarme en php y solo queria devolver la mano