y como no lo recuerdo decidí crear un nuevo tema, asi da para que lo critiquen y esas cosas...

Código PHP:
   <?php
/**
 * Khaus Framework
 *
 * LICENSE
 *
 * This source file is subject to the Public license Creative Commons LPCC
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://creativecommons.org/licenses/by-nc/2.0/cl/
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to [email protected] so we can send you a copy immediately.
 *
 * @category    Khaus
 * @package     Khaus_View
 * @copyright   Copyright (c) 2010 - 2011, Khaus Corp. Chile [[email protected]]
 * @license     Atribucion-Licenciar Igual 2.0 Chile. CC BY-NC 2.0
 * @version     8:20110527
 */
/**
 * Template Class
 *
 * Otorga el uso de plantillas dentro de la aplicacion.
 * Se debe especificar la ruta del archivo template
 * este puede ser de cualquier extension compatible con php.
 * los datos se asignan a travez de la propiedad publica $view
 * y desde la plantilla se llaman de la misma forma
 *
 * @example plantilla.phtml
 * <div><?php echo $this->variable; ?></div>
 *
 * @example index.php
 * $template = new Khaus_View_Template('plantilla.phtml');
 * $template->view->variable = 'datos';
 * echo $template->render();
 */
class Khaus_View_Template
{
    public $view;
    
    private $_filename;
    
    /**
     * Metodo constructor
     *
     * Genera la instancia de $this->view para guardar
     * los parametros que se entregaran a la vista y asigna
     * la ruta del template a utilizar
     *
     * @throws si la ruta es incorrecta
     * @param string $filename[optional] ruta del template
     */
    public function __construct($filename)
    {
        // IF: La ruta del template es incorrecta
        if (!is_file($filename)) {
            $message = sprintf('Template no encontrado (%s)', $filename);
            throw new Exception($message);
        }
        $this->view = new stdClass();
        $this->_filename = $filename;
    }
    /**
     * Retorna las peticiones de variables de la plantilla
     *
     * Si desde el template se llama directamente a la variable
     * con el metodo magico __get se captura la peticion y se envia
     * el valor correspondiente a lo almacenado dentro del objecto view
     * por lo tanto desde la plantilla se pueden traer los datos de dos formas
     * @example :
     *
     *      <?php echo $this->view->dato; ?>
     *      <?php echo $this->dato; ?>
     *
     * @param   string $name nombre del parametro
     * @throws  en caso de no existir el parametro
     * @return  string
     */
    public function __get($name)
    {
        // IF: el nombre del atributo no existe dentro del objeto view
        if (!isset($this->view->$name)) {
            $message = sprintf('Parametro no existente (%s)', $name);
            throw new Exception($message);
        }
        return $this->view->$name;
    }
    /**
     * Entrega el template procesado
     *
     * Mediante control de flujos captura la plantilla
     * por lo tanto se asignan las variables solicitadas
     * al objeto mediante $this
     *
     * @throws si la plantilla no a sido asignada
     * @return string template procesado
     */
    public function render()
    {
        ob_start();
        include $this->_filename;
        $template = ob_get_contents();
        ob_end_clean();
        return $template;
    }
    /**
     * Imprimir template
     *
     * Si se requiere imprimir o usar directamente el objeto como string
     * utiliza el metodo render para devolver el template procesado
     *
     * @access public
     */
    public function __toString()
    {
        return $this->render();
    }
}    PD: los tildes han sido omitidos intencionalmente de los comentarios por razones que ni yo mismo entiendo

PD2: olvide poner las etiquetas del post :C
 
 

Este tema le ha gustado a 5 personas