Re: [RFC][Discussion] Add session_gc()
| From: | Andrey Andreev | Date: | Fri, 08 Apr 2016 09:54:05 +0000 |
| Subject: | Re: [RFC][Discussion] Add session_gc() | ||
| References: | 1 2 3 4 5 6 7 8 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-92169@lists.php.net to get a copy of this message | ||
Hi,
On Fri, Apr 8, 2016 at 12:29 PM, Yasuo Ohgaki <yohgaki@ohgaki.net> wrote:
> Hi Andrey,
>
> On Fri, Apr 8, 2016 at 6:20 PM, Andrey Andreev <narf@devilix.net> wrote:
> > On Fri, Apr 8, 2016 at 11:33 AM, Yasuo Ohgaki <yohgaki@ohgaki.net>
> wrote:
> >>
> >> Hi Andrey,
> >>
> >> On Fri, Apr 8, 2016 at 4:57 PM, Andrey Andreev <narf@devilix.net>
> wrote:
> >> >>
> >> >> PS(gc_maxlifetime) is needed, so I fixed the last commit.
> >> >>
> >> >
> >> > It is necessary for probability-triggered GC because you don't have
> >> > another
> >> > way of giving a TTL value then, but that's not the case for a direct
> >> > session_gc() call.
> >>
> >> PS(gc_maxlifetime) is not related directly to probability based GC,
> >> but it's about which session should be deleted.
> >>
> >> Save handlers are supposed to delete inactive sessions exceeds
> >> PS(gc_maxlifetime) when GC is issued. Save handlers are not suppose to
> >> use PS(vars) directly and should use passed TTL parameter. Therefore,
> >> the parameter is passed.
> >>
> >
> > It is not directly related to gc_probability it is very obviously the
> result
> > gc_probability-based design.
> >
> > Still, even if we agree to disagree on that, it's not a blocker for
> > maxlifetime being overridable via a parameter.
>
> We need TTL value and the TTL is gc_maxlifetime.
> How would you specify session data to be removed?
>
> TTL value is mandatory.
>
I wrote this pseudo-code in my very first reply to this thread ...
function session_gc($ttl = ini_get('session.gc_maxlifetime')) {}
If that's unclear, here's a more verbose way to put it:
function session_gc($ttl = null)
{
if (empty($ttl))
{
$ttl = ini_get('session.gc_maxlifetime');
}
// ...
}
It just gives the ability to override the INI value for those who don't
want or need it.
Cheers,
Andrey.