Technology

Propel Technology

Base

Propel is based on Apache Torque, a well-established O/R solution for Java.

Propel is actually two tools which work together to provide efficient object persistence customized for your RDBMS: a generator and a runtime framework.

Generator

Based on a simple XML schema describing your database and tables, the generator will build PHP classes to interact with your data model and SQL definition files to create the tables, keys, sequences etc. for your specific RDBMS. The use of a build system to create RDBMS-specific SQL makes for a truly database-independent system without sacrificing performance.

Runtime

The runtime framework provides the ability to use these generated classes in your PHP scripts to transparently handle reading from and writing to your database.

Related Technology

Phing

Propel uses Phing v2 (http://phing.info) to perform the build operations. Phing is a PHP5 build framework based on Apache Ant. Phing functionality can be easily extended by writing custom tasks, which is what Propel has done. Propel's use of Phing makes it simple to integrate the Propel generator with a more general build process for your application.

Creole

Creole (http://creole.phpdb.org) is a sub-project of Propel, which provides a uniform database API (database abstraction) for PHP5. Creole is based loosely on JDBC and has many advantages including a fully OO API, comprehensive unified type system, unparalleled metadata support, and a very comprehensive unit test framework to ensure consistent behavior between drivers.

PEAR::Log

Currently the only PEAR package required by Propel is PEAR::Log. The PEAR Log package provides a simple and flexible way to handle logging. This is not currently packaged with Propel, but should be provided with most PHP default installations. PEAR::Log is only required at build-time by Phing, not by the generated classes in the runtime environment.