On Monday, 4 May 2015 01:37:49 UTC+10, Michael Babker wrote:
I think "it depends" on a lot of different factors including, but not limited to, usefulness of the code to the CMS vs usefulness to developers needing more recent versions of PHP. If it was me I'd be coupling the minimum desirable version of both Framework and CMS to lowest supported version of PHP - I digress.
I think the solution is one that should be applied to most low level packages. First, define an suite of interfaces for session management. Perhaps the namespace is something like \Joomla\API\SessionInterface
Now you can do a number of things:
* Do a backward compatible refactoring of the existing Session package to comply with the new interface, and keep the CMS running on its out-of-date PHP code (but allowing you to instantly plug-and-playing any other compatible session management solution on a per-install basis).
* Create a new Session package built right in PHP 5.4/5.5
* Allow a third-party to integrate a session package from another vendor (they might be trying to bind Joomla to an existing application built on Symfony perhaps) into their Joomla Framework app or even Joomla itself (if you propagate the changes to the CMS, which I think would be a really good idea).
As for coupling to the Application package, at worst it only needs to be coupled to the session interface (and even then that should be optional). However, a better approach would be to borrow the concept of "middleware" for the application (basically adding a Command pattern to replace some of the event triggers), where a session handler is merely a piece of middleware that the application loads (but is not tightly coupled to). That topic, however, is probably one for another thread.
Anyway, those are my thoughts.