He estado rumiando el tema de implementar algo parecido a las custom tags de las páginas JSP, para delegar el trabajo de cada etiqueta especial de la plantilla en una clase, llamada TagHandler, cuyo prototipo esbozo a continuación:
Código PHP:
<?php
if ( defined('ABSTRACT_TAG') ) { return; }
define('ASBTRACT_TAG', true );
define('EVAL_BODY', 0);
define('SKIP_BODY', 1);
define('EVAL_PAGE', 2);
class AbstractTag {
var $body;
function doStartTag($attributes, &$model){}
function setBodyContent($body){
$this->body = body;
}
function doInitBody(&$model){}
function doAfterBody(&$model){}
function doEndTag(&$model){}
}
?>
Todos los TagHandlers heredarían de esta clase abstracta, pero a partir de aquí todo se empieza a volver bastante engorroso y complicado... alguien conoce alguna otra alternativa para ganar flexibilidad?