While we freeze in New Zealand, I struggle to conceive Philipp Krenn working on his Google project in Austria in anything but blizzard-ravaged Alps... Supposedly it is summer holidays there; our only proof is the progress he's made on allowing SilverStripe to work with different types of databases!

Because allowing SilverStripe to talk to different types of databases deeply affects the core, most of the time thus far has been researching all the various options and deciding upon the system architecture. ADOdb, ADOdb Lite, PDO, MDB / MDB2, Propel, Creole, and EZPDO were among the options considered...

Phillip summarises, saying: "Propel, Creole, and EZPDO head in the direction of a (Java like) persistency layer, overkill when SilverStripe already has a nice way to communicate with the database, and would probably make SilverStripe sluggish. MDB and MDB2 (the PEAR packages) are rather slow, futhermore I'm not too happy with their documentation and development. I don't think we want to flog a dead horse in the future, so I would rather not use them.

Finally, ADOdb, ADOdb Lite, and PDO all look quite interesting, but I would go for PDO because: natively supported in PHP 5, prepared statements, will be used in PHP 6 as well so no worries on the future development, lightweight and (said to be) fast, and it supports a wide variety of databases. Its also reassuring that large projects such as Drupal have written an intelligent argument for supporting PDO"

So, we're excited to announce SilverStripe will soon use PHP5's Data Objects (PDO), allowing a clean, fast, native object-oriented interface with good transactional support. The initial goal is for Postgres and Microsoft SQL support, with the other requested databases like Oracle easy to add later.

See www.php.net/pdo

Post your comment

Comments for this post are now closed.



I agree with the logic of using PHP Data Objects (PDO). It appears this will make SilverStripe compatible with FreeTDS, Microsoft SQL Server, Sybase, Firebird/Interbase 6, IBM DB2, IBM Informix Dynamic Server, MySQL 3.x/4.x/5.x, Oracle Call Interface, ODBC v3 (IBM DB2, unixODBC and win32 ODBC), PostgreSQL, SQLite 3 and SQLite 2. I am looking forward to this upgrade of the SilverStripe CMS.

Posted on 16 Aug 2007 by Gregory L. Magnusson

Right on Philipp! Can't wait to get this all hooked in to SilverStripe.

Posted on 13 Jul 2007 by Brian Calhoun