-
Notifications
You must be signed in to change notification settings - Fork 2
Gestor de eventos
Documentación:
La clase del gestor de eventos permite a la aplicación (Foxtrot, por el momento, no emite ninguno, aunque podría hacerlo en el futuro) definir eventos globales y manejadores para los mismos, del lado del servidor.
Pueden crearse diferentes clases que extiendan \manejador
y contengan diferentes métodos, uno por cada evento que se desee escuchar. Por ejemplo:
class miManejador extends \manejador {
/**
* Manejador del evento `productoCreado`.
*/
public function productoCreado($id) {
//Hacer algún proceso con el producto $id
}
}
En algún punto, la aplicación debe suscribir o dar de alta el manejador mediante \eventos::suscribir()
. Este método acepta una instancia del manejador.
class aplicacion extends \aplicacion {
public function listo() {
$manejador=new miManejador;
\eventos::suscribir($manejador);
}
}
Nota: No se recomienda hacerlo en el constructor.
Posteriormente, por ejemplo en un controlador, puede desencadenar un evento simplemente invocando un método de \eventos
. El método del mismo nombre será invocado en todos los manejadores en los cuales esté definido, sin generar conflicto alguno con aquellos manejadores que no presenten el método. De esta forma, todos los eventos que genere la aplicación pueden centralizarse en forma segura en la clase \eventos
. Ejemplo:
class productos extends \controlador {
public function crear($campos) {
//Alta del producto
//...
//...
\eventos::productoCreado($id);
}
}
Los manejedores serán invocados en orden de suscripción. Cualquiera de ellos puede detener la propagación devolviendo true
.
¿Probaste Foxtrot? Contanos qué te pareció 🥰 contacto@foxtrot.ar
Índice
Primeros pasos
Gestor de aplicaciones
Editor de vistas
Componentes
Módulos
Comunicación cliente<->servidor
Modelo de datos - ORM
PHPDOC
JSDOC
☝ Comentarios
🤷♂️ Dudas
🤓 Ayuda
⌨ Contribuciones
Escribinos: contacto@foxtrot.ar