Re: Revert session_serializer_name(), session_gc()

From: Date: Wed, 12 Mar 2014 11:04:03 +0000
Subject: Re: Revert session_serializer_name(), session_gc()
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-73078@lists.php.net to get a copy of this message
Hi, On Wed, Mar 12, 2014 at 2:19 AM, Yasuo Ohgaki <yohgaki@ohgaki.net> wrote: > Hi Andrey, > > On Wed, Mar 12, 2014 at 8:54 AM, Andrey Andreev <narf@devilix.net> wrote: >> >> > Users want to have contorl *when* gc is performed rather than luck. This >> > is >> > reasonable. IMO. >> >> I like control, it's nice and *I already have it*: >> >> ini_set('session.gc_probability', 1); >> ini_set('session.gc_divisor', 1); > > > Of course you can. > It does not look nice as API. API should have good name for it. IMO. > > session_gc() is useful for both low traffic site and high traffic site. > I don't see reason not to have explicit gc API. User may simply call > > session_gc(); > > periodically by cron, etc. There's a very good reason not to have it, you just ignored most of my previous email which explained exactly that. >> >> And while session_serializer_name() is just redundant, session_gc() >> >> could cause performance issues. >> > >> > There is session_module_name(), why not session_serializer_name()? >> >> Why not session_cookie_lifetime()? >> Why not session_cache_limiter()? >> Why not session_entropy_file()? >> etc. > > > Those aren't changed by programs often. Oh, trust me - cookie lifetime is changed way more often than the serializer. And how do you define often anyway? Sessions are something that are setup once, it's rarely the case that a programmer needs to change any of the session INI settings more than once in the same program. > As I wrote, 3rd party save handler implements their own serializers. > Not like above example, it is likely called with session_module_name(). e.g. > > session_module_name('memcache'); > session_serializer_name('igbinary'); It's your opinion that this is "likely" done that way. I for one have *never* used session_module_name(). And again, this is not something that people would write more often than once in the whole application. > It looks better than > > session_module_name('memcached'); > ini_set('session.serializer_handler', 'igbinary'); It doesn't look better than: ini_set('session.save_handler', 'memcached'); ini_set('session.serialize_handler', 'igbinary'); IMO, this is more explicit and more understandable for people who haven't read the manuals for the "custom" functions. > It's reasonable to have session_serializer_name(), since it would be used > with session_module_name(). API should have good name here, too. I'm again questioning whether session_module_name() is useful/necessary in the first place. > We may discuss what we should do with module functions that modify it's INI. > There are number of them already. I think you need RFC for this. On this, I agree. > My opinion is "There should be API with obvious name, if it is used often or > mandatory". On this - not. ;) Cheers, Andrey.

« previous php.internals (#73078) next »