Mensajes y Notificaciones
Toba brinda mecanismos para hacer más uniforme la construcción de mensajes y notificarlos al cliente.
Construcción de Mensajes
Existe la posibilidad de centralizar el armado de mensajes a través de la clase toba::mensajes(). Esta clase brinda servicios para instanciar plantillas de mensajes definidas a nivel global del proyecto o a nivel de un único componente.
El mensaje actúa como plantilla dejando marcas para su posterior instanciación. Estas marcas toman la forma de %posicion%:
Esta es la %1% instancia de un mensaje global de Toba. Fecha de hoy: %2%.
Cuando el mensaje es global al proyecto se utiliza el índice del mensaje como primer parámetro y los reemplazos de las marcas como segundo:
<?php
echo toba::mensajes()->get('indice', array('primera', date('d/M/Y'));
?>
Cuando el mensaje es definido desde en el mismo componente, sólo se pude invocar desde una extensión de este componente de la siguiente forma:
<?php
echo $this->get_mensaje('indice', array('primera', date('d/M/Y'));
?>
El mensaje resultante es el siguiente:
Esta es la primera instancia de un mensaje global de Toba. Fecha de hoy: 13/Jun/2005
Notificación
Una vez construidos los mensajes, ya sea con la forma anterior o en forma manual, se los puede agrupa en una notificación para ser presentada posteriormente al cliente. Esta agrupación se hace con la clase toba::notificacion()
<?php
toba::notificacion()->agregar("Error al procesar");
?>
Opcionalmente se puede incluir el tipo de mensaje como segundo parámetro ('error' o 'info'), por defecto es 'error'.
Cuando el error se detecta desde la extensión un componente toba la notificación se puede hacer utilizando un servicio del mismo componente:
<?php
$this->informar_msg("Error al procesar");
?>
Ejemplos
Existe un ejemplo de construcción y notificación de mensajes en el proyecto Referencia, ítem Mensajes y Notificaciones