Hi All,

BC is a good thing when you want to keep maintenance down and developers happy
but sometimes stalls progression. When there are bugs in the code that have been
there for a while, chances are that they will stay there forever for BC
reasons. The latest example is the postgreSQL driver, but there are many many
more reports where the answer is something like "we should keep it this way for
BC".

Shoundn't we make something like a BC framework?

For example: two function bc_version(versionnr) and bc_bug(bugnumber) that
allows you to go 'back in time' to the behaviour before the bug was fixed or to
the behaviour of a specific PHP version. It's comparable to de ZE switch in the
php.ini, but only for bug fixes / function changes. In this way a developer kan
state someting like bc_version("5.0.0") at the beginning of his script and his
script will work the same for every next version of PHP 5. The bc_bug() allows
only to change the behaviour of the specific bugreport to before the fix. (so a
bc_version() can also be accomplished with multiple bc_bug()'s)

Together with some good documentation on the php website this can enable
progression while maintaining BC.

Wheter or not it has to be supported accross big version bumps (ie. PHP 5 to 6)
should be considered, but you might not want to do that to keep the source
clean from all the 'BC if structures'.

Hope to hear some comments :)

Kind regards,

David

Quoting Thomas Seifert <[EMAIL PROTECTED]>:

> On Sun, 07 Nov 2004 11:59:09 -0800, Sean Chittenden wrote:
> 
> >>> *nods*  It's a pretty evil behavior, IMHO.  It's all too common to 
> >>> have
> >>
> >> It has been like that for ages as far as I know and plenty of code 
> >> relies on it, so it can't be changed really.
> > 
> > Better late than never.  I've got a ton of code depending on it too, 
> > but believe me when I say doing:
> > 
> > find . -type f -name '*.php' -exec perl -pi -e 
> > 's#\s*==\s*[']([tf])[']##g' {} \;
> > 
> > will make me very happy.
> 
> Oh and you will change that for all the other developers out there?
> Thats great, thank you ;).
> 
> What Christian wanted to say is this: if it is changed now it will break
> backward compatibility (BC) so it will not happen!
> 
> 
> 
> thomas
> 
> -- 
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
> 




----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to