Hey,
On Tue, Mar 18, 2014 at 9:44 AM, Stas Malyshev <[email protected]> wrote:
> Hi!
>
>> If user uses undocumented interface (SessionIdInterface) they would have to
>> implement both createSid() and create_sid(). Alternatively, we may introduce
>> temporary interface for create_sid(). Or keep it undocumented and rename it
>> in 5.6 only.
>
> Doing to all this length for what? To rename a function? Looks hardly
> worth it.
>
>> Fortunately, current manual
>> http://jp2.php.net/manual/en/function.session-set-save-handler.php
>> is incomplete. It does not mention create_sid() and it's interface. It
>> does not
>> use interface for detailed version of example, too.
>
> It doesn't matter - it's there for 10 releases, so it's part of the API.
>
>> What is your opinion?
>
> My opinion it would be the best if we could support both and deprecate
> create_sid in 5.6, but if it's hard to do cleanly, then leave it alone.
I completely agree, and I think we're overthinking the possible
solution, so here's what I'm proposing:
Add SessionHandler::createId() to 5.5.next, when a userland session
handler is in use, it should look for createId() first, create_sid()
second and fallback to the internal implementation, whatever it is.
parent::create_sid() should call SessionHandler::createId() (this is
the dirty hack). Deprecate 'create_sid()' usage in 5.6.
Multiple arguments usage of session_set_save_handler() is not
affected, it only cares that you pass callables to it. Btw, this usage
should probably be deprecated as well, but that's the subject of a
separate discussion.
Cheers,
Andrey.