php-mongo-session icon indicating copy to clipboard operation
php-mongo-session copied to clipboard

read-only non-locking session

Open rocksfrow opened this issue 10 years ago • 3 comments

If #14 ends up a no-go, I was thinking it might be interesting to add a read-only mode which would allow applications to access locked sessions, but prevent writes.

For scenarios where a bunch of separate sections of a site are loading via ajax (and not writing to the session, only reading), this would enable you to have true asynchronous requests to the same session.

This implementation would of course still require a lock for write access.

Currently the read() method is requiring a lock.

rocksfrow avatar Jan 22 '15 17:01 rocksfrow

This is a good idea, too. Probably a lot simpler than #14 and in a majority of cases might be what you want anyway.

nicktacular avatar Jan 22 '15 18:01 nicktacular

And makes me less nervous! Haha On Jan 22, 2015 1:22 PM, "Nick Ilyin" [email protected] wrote:

This is a good idea, too. Probably a lot simpler than #14 https://github.com/nicktacular/php-mongo-session/issues/14 and in a majority of cases might be what you want anyway.

— Reply to this email directly or view it on GitHub https://github.com/nicktacular/php-mongo-session/issues/17#issuecomment-71070449 .

rocksfrow avatar Jan 22 '15 18:01 rocksfrow

Having thought about this more, I think this is a must have. A few things need to be done here:

  • Upon calling read(), MongoSession needs to de-serialize the data using session_decode method to reference a local copy.
  • Introduce a get($key) method which will allow access to that reference without regard for locking since the assumption here is that it will be immutable.
  • Ensure that for referenced objects, clone is called on them so that there's no confusion of immutability.

How does that sound?

FYI see #16

nicktacular avatar Feb 10 '15 13:02 nicktacular