Re: [RFC] session_start(), read_only, lazy_write; Take 2
| From: | Yasuo Ohgaki | Date: | Fri, 28 Mar 2014 10:31:43 +0000 |
| Subject: | Re: [RFC] session_start(), read_only, lazy_write; Take 2 | ||
| References: | 1 2 3 4 5 6 7 8 9 10 11 12 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-73468@lists.php.net to get a copy of this message | ||
Hi Andrey,
On Fri, Mar 28, 2014 at 6:46 PM, Andrey Andreev <narf@devilix.net> wrote:
> > Manager should manage how session behaves, not save handlers.
> > It's basic principle of modular design.
>
> I still don't get it ... the session manager has to call either
> write() or updateTimestamp() and both of these are part of the session
> handler. Merging them into one solves the API design and BC issues, I
> don't see how it breaks any principle. They can still be split to two
> methods in PHP6, but for the time being, using write() for both
> purposes IMO solves way more problems than sticking to this design
> principle you're talking about.
Without API, manager cannot manage how it behaves. In general, submodule
should
avoid manager state dependency in general. It should have dedicated API for
each
distinct task rather than leaving it to managed by submodule. In addition,
manager
cannot know if save handler supports API or not. If there is API, I can
display save
handler capability in phpinfo() page, for example.
If manager expects sub module to behave in some way, it should have
explicit API
for each feature. Otherwise, sub module implementation may differ module by
module.
Defined set of feature is better to have explicit API with modular design.
It's not mandatory,
but the best practice. I don't see reason not to follow the practice here.
Besides modular design, if write() and updateTimestamp() are merged, flag
parameter
for write() should be added. It breaks compatibility with current save
handlers. I don't
want BC that could be avoided also.
Regards,
--
Yasuo Ohgaki
yohgaki@ohgaki.net