Out of curiosity, what compatibility issue? For the most part, newer versions with PHP can be compatible with scripts written for older versions as long as the configurations in php.ini match. 99% of all upgrade conflicts were due to the change of the default values of register_globals to "off" and error_reporting to "E_ALL".
The only other hitch I had was with some of the early experimental extensions, most notable the XSLT/Sablotron extension. The entire extension was redesigned after 4.0.6, so much in fact that the main function, xslt_process, was rewritten to accept different parameters.
If you're having these difficulties, then you can write your scripts to work across versions by stealing a concept from the long-disgruntled JavaScript masses --
$cmp = version_compare(phpversion(), "4.1.0");
if($cmp < 0)
{
// use old xslt extension functions
}
else
{
// use new xslt extension functions
}
This is where writing wrapper classes to extensions is a major benefit. Your entire application uses the class to access the main functionality of the extension, and if the extension itself changes, you patch the class and your application continues to work as if nothing happened.
...but you already knew that! :)
Take care,
Nik
http://www.bigaction.org/