pero no se si voy bien encaminado o de frenton mi planteamiento es incorrecto.
Cual de las siguientes metodologías me conviene mas.
1- Cada vez que cargue una vista hacer directamente un require a la vista para capturar el contenido html generado con ob_get_contents()
y guardarlo en una variable a la espera de un metodo output();
les dejo el codigo lo mas simplificado posible...
Código PHP:
class View
{
private $_buffer;
public function load($file, $data){
// aca hago el require, uso las funciones ob_start(), ob_get_contents(), etc.
// capturo el retorno y lo asigno a la variable $html;
$this->_buffer.= $html;// almaceno el contenido de las vistas en el atributo _buffer
}
// imprime la salida del buffer
public function output(){
echo $this->_buffer
}
}
en el método output que sera invocado justo antes de terminar todos los scripts.
Código PHP:
class View
{
private $_views = array();
public function add($file, $data){
$this->_views[] = array('file' => $file, 'data' => $data);
}
public function output(){
foreach($this->_views as $view => $data){
require($view['file']);// Aca voy cargando las vistas
}
}
}
Bueno a mi entender y siendo novato en php la opcion 2 es mas limpia y rápida llama a todas las vistas juntas.
Pero he visto que es común en los frameworks pasar un tercer parámetro al método que carga la vista, un boleano
si es TRUE retorna la vista por lo que se ajustaría al ejemplo uno.
La verdad quiero hacer mis desarrollos siguiendo standares y convenciones por eso pido su consejo.
tambien pretendo implementar layouts.
Saludos!!