PlatesPHP: Sistema de plantillas para Codeigniter 3
PlatesPHP: Sistema de plantillas para Codeigniter 3
¡INSCRÍBETE A CUALQUIER CURSO CON UN 50% DE DESCUENTO PARA NUEVOS CLIENTES!

Las sesiones en Codeigniter3 nos ofrecen nuevas y muy interesantes funcionalidades para hacer aún más fáciles nuestro trabajo, en este tutorial vamos a ver los nuevos métodos y algunas características que seguro más de uno ha echado en falta en algún momento (me pongo el primero de la lista).

Cómo ya sabemos, en Codeigniter3 las sesiones han pasado de ser una librería a ser un driver para tener la opción entre otras cosas de escoger que tipo de sesiones queremos utilizar, nativas o cookies.

La documentación de Codeigniter3 también nos ofrece un claro ejemplo de cómo podemos extender dicho driver, y vamos a ver un rápido ejemplo en este tutorial, así que empecemos por las nuevas funcionalidades.

Métodos mágicos

Gracias al método mágico __get podemos obtener una sesión userdata por su nombre.


Esto lo hace posible el siguiente método mágico de php.

El método has_userdata()

Muy útil, simplemente nos devuelve un booleano, si existe la sesión true en otro caso false.

El método mark_as_flash()

Este método nos permite marcar una sesión existente en una sesión flashdata, muy útil también.


La sesión flashdata welcome retornara el valor de la sesión userdata welcome, muy importante, la sesión userdata welcome dejará de existir al marcar una sesión de esta forma.

El método tempdata()

Este lo he echado de menos en muchas ocasiones, tempdata nos permite setear una sesión durante un período de tiempo marcado en segundos, realmente útil.


Creamos una sesión que va a durar 10 segundos, pasados los 10 segundos la sesión es eliminada.

Si necesitamos eliminar de forma explicita una sesión también podemos hacerlo con el método unset_tempdata().

El método mark_as_temp()

De la misma forma que pasa con flashdata, también podemos marcar sesiones existentes como tempdata utilizando este método.


Tremendo :).

Extender el driver de Sesiones en Codeigniter3

Finalmente, cómo dice la documentación de Codeigniter3, también podemos extender el driver de sesiones, simplemente debemos crear la siguiente ruta dentro de libraries, por ejemplo application/libraries/Session/drivers/Session_dummy_driver.php, la clase debe extender de CI_Session_driver e implementar la interfaz SessionHandlerInterface, el siguiente ejemplo es la base para extender e implementar la interfaz.


La documentación explica cada método y cómo utilizarlos, aparte puedes ver que todo está comentado, el resto en lo referente a las sesiones sigue siendo igual.

Si te ha gustado el tutorial te agradezco que lo compartas en las redes sociales.