He estado usando el sistema CodeIgniter por un tiempo, pero it has es short comings. Estoy agradecido por lo que me enseñó, pero ahora necesito una biblioteca para un proyecto nuevo que no codifica y por eso busco ideas sobre qué bibliotecas tienen las cosas correctas y cuáles no. Probablemente tenga que tomar piezas de varias bibliotecas para obtener todo lo que necesito.Mejor biblioteca para sesiones PHP
Acabo de echar un vistazo a la biblioteca Kohana PHP session y me gusta cómo se vuelve a la forma nativa de PHP de usar $ _SESSION superglobal en lugar de forzar un cambio a $ this-> sesión para acceder a los datos.
En cualquier caso, quería saber si había otras buenas bibliotecas de sesión por ahí que podría estar jugando. Hay mucho que se debe manejar en una sesión además de CRUD funcionalmente.
- Apoyo para la sesión basada en cookies NO pasa (es decir, Facebook o cargadores de Flash)
- "datos flash" que sólo dura para la próxima carga de la página y luego se auto-elimina.
- Funciona con $ _SESSION o $ this-> sesión para que los programadores no tengan que cambiar el código existente.
- Admite establecer una nueva identificación de sesión (es decir, session_id ('nueva identificación')) en caso de que desee cambiar la identificación a mitad de camino a través de la página.
- Guarda todos los datos al final de la solicitud de página en lugar de cada vez que se agregan o eliminan datos (se guardan consultas DB adicionales).
- Admite el uso de archivos, cookies o bases de datos para el almacenamiento. (o memcached sería bueno)
- Intenta denegar el acceso en caso de un secuestro de sesión. (IP, agente de usuario, o fingerprint)
yo acabamos de pasar un poco de tiempo a repasar la lógica para las bibliotecas de sesión CodeIgniter y Kohana y yo le ocurrió la siguiente sobre cómo cada uno comienza y termina sesiones de la página.
/**************
** Kohana Sessions
**************/
If not native file storage {
session_set_save_handler to the storage type (DB, cache, cookie...)
}
set the session_name() so php knows what cookie value to check
start session
/****** Saving ******/
session_write_close() which calls the given handler
/**************
** CI Sessions
**************/
Try to read_session() -> {
session = Get cookie (if using cookies will also contain data)
if(database) {
session .= pull data from database
}
checks if valid...
$this->userdata = session data
} else {
create a new one
}
/****** Saving ******/
session data is serialized either way
if(cookie) {
save cookie with serialized data and params like "last_activity"
}
if(database) {
save serialized data in db and session in cookie
}
+1. Esto ha estado en mi mente por algunas veces ahora. Gracias por explicarlo en detalles – andyk