[RFC][VOTE] Add session_gc() function

php.internals

Yasuo Ohgaki

10 years ago
Hi all, This RFC is to add session_gc() function. session_gc() function is required API for periodic session GC that is best practice for production web sites. https://wiki.php.net/rfc/session-gc It requires 2/3 majority to pass. Vote starts: 2016/08/10 - Vote ends: 2016/08/17 23:59:59 UTC Thank you for voting!
-- Yasuo Ohgaki yohgaki@ohgaki.net

Marco Pivetta

10 years ago
Hey Yasuo, Something is weird with the voting form, can you check it? Marco Pivetta http://twitter.com/Ocramius http://ocramius.github.com/ On Wed, Aug 10, 2016 at 11:30 AM, Yasuo Ohgaki <yohgaki@ohgaki.net> wrote:

Yasuo Ohgaki

10 years ago
Hi Marco, On Wed, Aug 10, 2016 at 6:32 PM, Marco Pivetta <ocramius@gmail.com> wrote:
> > Something is weird with the voting form, can you check it?
Thank you for letting me know! I rewrited vote section immediately after I posted RFC vote notice mail because it wasn't working for some reason. Something may be caching the old page. Could you try to force reloading see if it works? Thank you!
-- Yasuo Ohgaki yohgaki@ohgaki.net

Bishop Bettini

10 years ago
On Wed, Aug 10, 2016 at 5:30 AM, Yasuo Ohgaki <yohgaki@ohgaki.net> wrote:
> Hi all, > > This RFC is to add session_gc() function. > > session_gc() function is required API for periodic session GC that is > best practice for production web sites. > > https://wiki.php.net/rfc/session-gc > It requires 2/3 majority to pass. > Vote starts: 2016/08/10 - Vote ends: 2016/08/17 23:59:59 UTC >
+1. Should we document a polyfill, since the session GC firing logic can be non-intuitive? Here's an attempt, anyhow: function session_gc() { $initial = [ session_status(), ini_get('session.gc_probability'), ini_get('session.gc_divisor'), ]; if (PHP_SESSION_DISABLED === $initial[0]) { return false; } if (PHP_SESSION_ACTIVE === $initial[0]) { session_write_close(); } ini_set('session.gc_probability', 1); ini_set('session.gc_divisor', 1); session_start(); ini_set('session.gc_probability', $initial[1]); ini_set('session.gc_divisor', $initial[2]); if (PHP_SESSION_NONE === $initial[0]) { session_write_close(); } return true; }

Yasuo Ohgaki

10 years ago
Hi Bishop! On Sat, Aug 13, 2016 at 4:49 AM, Bishop Bettini <bishop@php.net> wrote:
> On Wed, Aug 10, 2016 at 5:30 AM, Yasuo Ohgaki <yohgaki@ohgaki.net> wrote: >> >> Hi all, >> >> This RFC is to add session_gc() function. >> >> session_gc() function is required API for periodic session GC that is >> best practice for production web sites. >> >> https://wiki.php.net/rfc/session-gc >> It requires 2/3 majority to pass. >> Vote starts: 2016/08/10 - Vote ends: 2016/08/17 23:59:59 UTC > > > +1. > > Should we document a polyfill, since the session GC firing logic can be > non-intuitive? Here's an attempt, anyhow: > > function session_gc() { > $initial = [ > session_status(), > ini_get('session.gc_probability'), > ini_get('session.gc_divisor'), > ]; > if (PHP_SESSION_DISABLED === $initial[0]) { > return false; > } > if (PHP_SESSION_ACTIVE === $initial[0]) { > session_write_close(); > } > ini_set('session.gc_probability', 1); > ini_set('session.gc_divisor', 1); > session_start(); > ini_set('session.gc_probability', $initial[1]); > ini_set('session.gc_divisor', $initial[2]); > if (PHP_SESSION_NONE === $initial[0]) { > session_write_close(); > } > return true; > }
Thank you for the comment! I'll add your example code in the manual. Regards,
-- Yasuo Ohgaki yohgaki@ohgaki.net

Pascal MARTIN

10 years ago
Le 10/08/2016 à 11:30, Yasuo Ohgaki a écrit :
> Hi all, > > This RFC is to add session_gc() function.
Hi, We at AFUP would be +1 on this RFC to add a session_gc() function. Basically: there are some situations were it could be useful and it's a quite self-contained change. Thanks for you work on this!
-- Pascal MARTIN, AFUP - French UG http://php-internals.afup.org/

Yasuo Ohgaki

10 years ago
Hi all, On Wed, Aug 10, 2016 at 6:30 PM, Yasuo Ohgaki <yohgaki@ohgaki.net> wrote:
> > This RFC is to add session_gc() function. > > session_gc() function is required API for periodic session GC that is > best practice for production web sites. > > https://wiki.php.net/rfc/session-gc > It requires 2/3 majority to pass. > Vote starts: 2016/08/10 - Vote ends: 2016/08/17 23:59:59 UTC > > Thank you for voting!
Sorry for the delay. This RFC has passed by 12 vs 0. Thank you for voting! I'll merge and write manual soon. Regards.
-- Yasuo Ohgaki yohgaki@ohgaki.net