Utilizzo il sistema CodeIgniter da un po 'di tempo - ma it has è short comings. Sono grato per ciò che mi ha insegnato, ma ora ho bisogno di una biblioteca per un nuovo progetto non-codeigniter e quindi cerco idee su quali librerie hanno le cose giuste e quali no. Probabilmente dovrò prendere pezzi da diverse librerie per ottenere tutto ciò di cui ho bisogno.Migliore libreria per sessioni PHP
Ho appena dato un'occhiata alla libreria Kohana PHP session e mi piace come ritorna al modo nativo di PHP di usare $ _SESSION superglobal invece di forzare una modifica a $ this-> session per l'accesso ai dati.
In ogni caso, volevo sapere se c'erano altre buone librerie di sessione là fuori che potevo fare scherzi. C'è molto che deve essere gestito in una sessione oltre a solo CRUD funzionalmente.
- Supporto per sessione non basati cookie di passaggio (vale a dire Facebook o uploader Flash)
- "Dati Flash" che dura solo per il prossimo caricamento della pagina e quindi è auto-rimosso.
- Funziona con $ _SESSION o $ this-> sessione in modo che i programmatori non debbano modificare il codice esistente.
- Supporta l'impostazione di un nuovo ID di sessione (ad esempio session_id ('nuovo id')) nel caso in cui si desideri modificare l'id a metà della pagina.
- Salva tutti i dati alla fine della richiesta di pagina anziché ogni volta che i dati vengono aggiunti o rimossi (salva query DB aggiuntive).
- Supporta l'utilizzo di file, cookie o database per l'archiviazione. (o memcached sarebbe bello)
- Tenta di negare l'accesso in caso di un hijack di sessione. (IP, useragent, o fingerprint)
ho appena trascorso un certo tempo andare oltre la logica per le librerie di sessione CodeIgniter e Kohana e mi si avvicinò con il seguente su come ognuno inizia e termina le sessioni per la pagina.
/**************
** 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. Questo è stato nella mia mente per qualche volta ora. Grazie per averlo spiegato nei dettagli – andyk