The Creole Project is Dead

Note: Creole is no longer being maintained.

Project Summary

Creole is a database abstraction layer for PHP5. It abstracts PHP's native db-specific API to create more portable code while also providing developers with a clean fully object-oriented interface based loosely on the API for Java's JDBC. Creole was originally created as a subproject of Propel to meet specific needs that none of the available abstraction layers were able to address in any satisfactory way. Propel has since moved on to use PDO, but Creole remains and will continue to be maintained as long as there is interest in the project.

News

Click on any of the entries below to read the full news message:

11/13/08

05/29/08

11/19/07

Features

Creole provides the following distinguishing features:

  • Built for PHP5: new object model, Exceptions
  • Interface-based system allows easy creation & registering of custom drivers or classes that wrap existing drivers to provide additional functionality (e.g. to log queries for debugging, do query performance analysis using EXPLAIN, etc.).
  • Fully object-oriented API
  • ResultSet scrolling: next, previous, first, last, relative, and absolute row fetching.
  • ResultSetIterator (SPL) provides an additional means for iterating over recordsets.
  • Comprehensive database metadata (database, table, full column info, pimary keys, foreign keys, indexes) using simple OO API.
  • Full unified type system (based on JDBC Types)
  • Simple, un-exceptional OO API for handling BLOB and CLOB data.
  • Type-specific methods handle any necessary conversions and escaping for inserting and retrieving values.
  • Native (no emulation) handling of autoincrement / sequence id generation.
  • Extensive unit test framework tests each driver using real databases.