Posts Tagged ‘ sfUser

Personalizando el objeto sfUser de Symfony 2/2

VN:F [1.9.22_1171]
Rating: 4.0/5 (1 vote cast)

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.

Para esto vayamos al archivo %PROJECT%/apps/%APP%/lib/myUser.class.php el cual es como la extensión del objeto sfUser preparado para que lo podamos moldear nosotros, y agreguemos lo siguiente:

Leer mas

Personalizando el objeto sfUser de Symfony 1/2

VN:F [1.9.22_1171]
Rating: 4.3/5 (4 votes cast)

Presentación del sfUser

Dando continuidad a los artículos de Symfony quiero mostrarles algo que fue de mucha utilidad cuando lo conseguí hacer. Para los que no lo saben el objeto sfUser es el encargado de manejar las sesiones dentro de Symfony desaconsejando completamente el uso del array superglobal $_SESSION. Este objeto maneja por dentro la sesión del usuario y a esta funcionalidad le agrega mejoras interesantes para que los desarrolladores no tengamos que sufrir tanto. Esto es lo que nos dice el manual de Symfony:

En Symfony, el desarrollador no tiene que manipular directamente las sesiones, sino que usa el objeto sfUser, que representa al usuario final de la aplicación.

Para acceder al objeto sfUser, o lo que es lo mismo, para obtener o guardar datos en sesión, tenemos diferentes formas de hacerlo aunque siempre invocando a este objeto. Desde cualquier action, por estar extendiendo de sfActions, podemos acceder directamente asi: Leer mas