-- Benjamin Eberlei <[email protected]> wrote
(on Tuesday, 22 September 2009, 06:02 PM +0200):
> sorry but that i dont understand.
> 
> The factory makes certain assumptions about what is possible
> and what not in creating an adapter. Changing the assumptions
> is a B/C break.
> 
> Of course its a bug that ZendX Firebird cannot be loaded
> from the previous assumptions but that is not a valid cause
> to overthrow them. There has to be a BC way to solve both cases.

This is not just an issue of the ZendX FireBird adapter, but a
longstanding request from developers using ZF and writing their own
adapters, as the assumptions were not well documented. Often developers
were writing the adapters, and having to debug Zend_Db::factory() to
understand why it wasn't finding them.

The changes make the factory much more flexible, but break one
edge case that, honestly, probably should never have been used.

> Additionally this is a change in a mini version, breaking
> code that was perfectly valid and should still be valid in all
> versions from 1.0 to 1.9.2 updates. I cant understand that
> reasoning.

First off, it's a trivial fix to implement within userland code; in
fact, in most cases, it's not even code that needs to be updated but
configuration.

Second, unfortunately, the timing was such that when we realized it was
already in the 1.9 branch, backing it out would have posed a number of
additional issues. I made the final call, and as such take
responsibility. Should a different call have been made? Possibly.
However, ensuring 100% BC between releases is a daunting task, and
unfortunately next to impossible to achieve.


> On Tue, 22 Sep 2009 11:46:27 -0400, Matthew Weier O'Phinney
> <[email protected]> wrote:
> > -- till <[email protected]> wrote
> > (on Tuesday, 22 September 2009, 05:09 PM +0200):
> >> On Tue, Sep 22, 2009 at 11:39 AM, Jonathan Maron
> >> <[email protected]> wrote:
> >> > This modification is important to note in ZF 1.9.3:
> >> >
> >> > http://framework.zend.com/issues/browse/ZF-5606
> >> >
> >> > The change will probably break some (older) applications.
> >> >
> >> > Correct:
> >> >
> >> > $db = Zend_Db::factory('Pdo_Mysql', $params);
> >> >
> >> > Incorrect (as of ZF 1.9.3)
> >> >
> >> > $db = Zend_Db::factory('PDO_MYSQL', $params);
> >> 
> >> I'm just wondering why this was "fixed" now and not in 2.0?
> > 
> > Because it was leading to other issues.
> > 
> > BC breaks, while regrettable, are allowed if they fix a more fundamental
> > issue.
> 

-- 
Matthew Weier O'Phinney
Project Lead            | [email protected]
Zend Framework          | http://framework.zend.com/

Reply via email to