Why does Propel use Creole instead of something more popular like PEAR::DB, MDB, ADOdb, or Metabase?
We would have loved to use existing technology rather than spawn a new project, but quite simply none of the other projects have the features Propel needs. Mostly importantly, Propel needs a datatype abstraction system — so that generic types can be mapped to native database types. Propel needed a richer set of types than the very basic selection offered by MDB/Metabase or ADOdb, which offer a mapping of PHP types (there aren’t many of those) to SQL types. Relatedly, Propel needed a system that was able to properly prepare different types of data (especially date/time columns, BOOLEAN, BLOB) for the specific RDBMS. Creole handles native PHP dates (unix timestamp) and puts them in the right format for the target database. Propel also requires a good metadata system to handle reverse-engineering databases. Some of the current layers have some basic metadata support, but we were not able to find anything that had comprehensive metadata support (e.g. full column info, indexes, foreign key