Looking to get opinions here.
I have begun a fairly major project which I do not want to give too many details out on right now, but one of the major goals is abstraction for all major SQL databases. Of course, MySQL is the most important and also the only one I have any significant experience with.
Previous, non-public projects (this will eventually be an open-source project once I have it ready for prime time and secure a few commercial sales) I have used my own system of abstraction, basically having a class for each database type and changing the include as needed, that class had methods for all major queries so most SQL was part of that class, and others who were familiar with the different databases made the classes as needed for the other databases. So far, it has seemed to work well, given that the projects that used this method only ran code developed as part of the core project. 'Mods' and 'Plugins' were at users own risk.
This project, which some might classify as a YAPS (Yet Another Portal System) -- even though there are numerous core differences -- will have modules, add-ons, and plugins all handled structurally as part of the core, requiring a good DB Abstraction API.
I have thought about PEAR, AdoDB, dbx, etc, but my thinking is that might make it harder for the users (site admins) to develop their own database module as needed...
Has anyone had experience with doing this or can provide good feedback/opinions on what would work best?
The three options I am considering are: Custom Abstraction (Similiar to what I have done before, but fixed up a bit to support custom code), dbx, and PEAR. I have seen enough benchmarks to rule out AdoDB at this time.
Thanks, Scott
-- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php