Extendiendo el sfActions de Symfony 2/3

Mensajes al usuario

Habiendo visto la primera parte de esta serie Extendiendo el sfActions de Symfony con el primer artículo, en el que vimos básicamente las primeras configuraciones que deberíamos hacer creando una clase BaseActions que extendiera de sfActions y haciendo que nuestros actions extiendan directamente de nuestra clase base, ahora podemos pasar a ver un ejemplo muy frecuente de uso, basándonos sobre el objeto myUser del cual hablamos en la serie Personalizando el objeto sfUser de Symfony.

Lo que hicimos en el myUser fue básicamente, para recordar, un método que permitiría cargar dentro del objeto Flash los mensajes de INFO, WARN y ERROR para los usuarios. Nos quedó algo así:

Continúa leyendo Extendiendo el sfActions de Symfony 2/3

Personalizando el objeto sfUser de Symfony 2/2

Agregando inteligencia a los Flash para mensajes

Como una continuación a la serie de artículos sobre Personalizando el objeto sfUser de Symfony vamos a usar la funcionalidad “Flash” del objeto sfUser (el flash aquí no es el de adobe X-D ). Los métodos setFlash() y getFlash() en realidad usan la sesión del usuario para almacenar los datos, la única diferencia es que estos a la siguiente vez que se ejecute una redirección en la página, el mismo objeto sfUser se encarga de borrar los datos para que no permanezcan en sesión, ya que solo sirven para mostrar los mensajes una sola vez.

Con un poco de CSS podemos lograr que existan tres tipos de mensajes, trabajando un poco con los colores y algunos DIVs:

  • infoMessages: Informaciones básicas como ser “Registro grabado con éxito”, “Bienvenido usuario: Jhon Doe”, etc
  • warnMessages: Informaciones de alertas (no errores), “Usuario o clave inválida”, “El registro no pudo ser guardado por que fallo alguna validación”
  • errorMessages: Estos si son errores ocurridos en la aplicación, “No se puedo conectar a la base de datos”, “El archivo que intenta leer no existe”, etc

Por cada uno de estos mensajes vamos a crear un atributo de tipo Flash que va a contener un array para que por ejemplo si queremos mostrar más de un mensaje de tipo INFO cada uno ocupe una posición y terminemos mostrándolos todos.

Continúa leyendo Personalizando el objeto sfUser de Symfony 2/2