Oye, entonces el tema de la vista podría quedar así: todas las acciones tienen en común que devuelven un objeto de la vista con el mismo nombre de la acción.
Así que en AbstractAction.process():
Código PHP:
function process( &$data ){
$views =& ViewManager::getInstance();
return $views->getView( $this->name );
//ó en vez de name $data -> getParameter('action');
}
A lo que iba, en una acción particular digamos: HelloWorldAction su método process() debería invocar a AbstractAction::process() al final para devolver la vista no? Porque sobreescribir no implica que se llame al método padre automáticamente, no?
De tal forma que se lo pasamos a la interfaz Template, a través del método expose.
Código PHP:
$controllerView -> expose( 'view', $view );
//esta linea a continuación puede ser discutible
$controllerView -> expose( 'data', $data );
correspodiéndose eso con una plantilla PHP:
Código PHP:
<html>
<body>
<?php echo $view -> render( $data ) ?>
</body>
</html>
No lo he terminado de implementar, pero bueno, puede ser la solución. Para PHPMarker tendría que implementar una etiqueta especial para la ocasión, como un
Código:
<include-view name="nombre de la vista"/>
Bueno bueno, me voy a comer que ya son horas