no fermo persistenza e sessioni sono 2 cose diverse.
Ho lavorato su hibernate su server tomcat e devo dire che la possibilità di usare le persistenze e' una cosa davvero bella. In php si sente molto questa mancanza e in questo caso appunto a scandenza sessione se fosse possibile registrare gli handlers e stiparli in memoria del server ad avvio dell'applicazione sarebbe una bombardata.
Il problema e' chq in php la gestione custom delle sessione avviente tramite registrazione di funzioni (o classe + relativi metodi) ad avvio dello script. quindi tutte le operazioni di gestione sessione sono passate alle tue funzioni invece che alle procedure std di PHP.
MA, se quando una sessione va in timeout ? Che succede ? Non so se PHP la gestisca internamente con qualche listener .... so che se va in timeout dealloca i dati e amen.
Quindi non c'e' modo di sapere se la sessione e' in timeout se non controllato la timestamp dell'ultima op eseguita a riavvio della sessione ( alla prima read che viene eseguita).
La possibilità di gestire il garbage collector d'altro canto mi da la possibilità di fare un controllo su tutte le sessioni ogni volta che viene lanciata la mia procedura di garbage colletion. Il problema e' che tale procedura viene avviata quando ? ogni utente che ha una sessione e i relativi handlers puo' lanciarla ? Viene instanziata 1 volta sola e amen ? Se lo script termina viene deallocato tutto e tanti cari saluti alle mie procedure ?
Una bella soluzione sarebbe proprio la possibilità di gestire le persistenze, cosi' da poter creare correttamente le factory di gestione e al primo avvio dell'applicazione si carica l'ambiente che l'app deve usare e quindi non serve piu' re-istanziare nulla. Inserendo quindi gli handlers per le sessioni lo si fa la prima volta e basta poi sono pronti all'uso per ogni successiva necessita( con tanto sollievo del server che non deve riallocare / re-instanziare tutto ogni volta).
Ora cio' si puo' fare ?

Rispondi quotando