Breaking the PDO API

[email protected] (Matteo Beccati) Thu, 16 Apr 2009 01:11:21 +0200
Newsgroups php.pecl.dev,php.pdo
Message-ID <[email protected]>
Hi everyone,

you might have seen my recent PDO related post on internals. If not
here's a link: http://news.php.net/php.internals/43663

For those not following I've trying to fix a bug in PDO that is not able
to distinguish empty string from streams when a driver returns the LOB
content, potentially leading to crashes, but to do so I need a small API
change. After some discussion on IRC I've started a related change to
make sure that a driver can successfully compile only if it's declared
to be compatible with the PDO API version in use.

This is especially important for drivers living in pecl, that most
likely will crash when compiled against an incompatible API.

However I've been recently made aware of a GSoC project to standardise
API versioning:
http://wiki.php.net/gsoc/2009#abstract_extension_api_and_dependency_interface

It would come in very handy and avoid us to reinvent the wheel, but
unfortunately its schedule is not quite compatible with the imminent
release of PHP 5.3.

So, as far as I can tell, we have two choices:

1. just bump the PDO API version and expect that pecl drivers are
updated accordingly. This means that pecl PDO drivers can cause crashes
until updated.

2. bump the PDO API version and add version checking to prevent
compiling any incompatible driver until a new version is released on pecl.

If no one screams I'd prefer to avoid adding version checking as it
would just be a short term solution, but I'd be glad to get some
feedback from the maintainers of the various PDO drivers before making a
call.


Cheers

-- 
Matteo Beccati

OpenX - http://www.openx.org