Propel logo

What?

Propel is an open-source Object-Relational Mapping (ORM) for PHP5. It allows you to access your database using a set of objects, providing a simple API for storing and retrieving data.

Why?

Propel gives you, the web application developer, the tools to work with databases in the same way you work with other classes and objects in PHP.

  • Propel gives your database a well-defined API.
  • Propel uses the PHP5 OO standards -- Exceptions, autoloading, Iterators and friends.

Propel makes database coding fun again.

Show Me!

<?php
$book = BookQuery::create()->findPK(123); // retrieve a record from a database
$book->setName('Don\'t be Hax0red!'); // modify. Don't worry about escaping
$book->save(); // persist the modification to the database

$books = BookQuery::create()  // retrieve all books...
  ->filterByPublishYear(2009) // ... published in 2009
  ->orderByTitle()            // ... ordered by title
  ->joinWith('Book.Author')   // ... with their author
  ->find();
foreach($books as $book) {
  echo  $book->getAuthor()->getFullName();
}

Get It!

Fork the Propel GitHub repository at http://github.com/propelorm/propel.

Dive In!

Propel uses PDO as an abstraction layer, and code generation to remove the burden of runtime introspection. Therefore Propel is fast.

Propel implements all the key concepts of mature ORM layers: the ActiveRecord pattern, validators, behaviors, table inheritance, reverse engineering an existing database, nested sets, nested transactions, lazy loading, LOB, you name it.

Propel is built for developers who need to keep control of their code:

  • Extensibility is at the heart of Propel's design; whatever you need to customize, Propel allows you to do so in a snap.
  • Propel can get out of your way for when you need custom queries or hyper-optimized transactions.
  • If you need to change your RDBMS in the course of the project, rebuild your model and you're ready to go. Propel supports MySQL, PostgreSQL, SQLite, MSSQL, and Oracle.
  • The code generated by Propel is well commented, IDE-friendly and easy to use.
  • The Propel project started in 2005, and already powers thousands of websites. Thoroughly documented, backed by many tutorials across the web, it also benefits from an enthusiast community that provides rapid support for both beginner and hardcore developers.

Propel is released under the MIT license. It's free to use, even in commercial applications.

Do you want to know more? Jump to the Documentation tab, or start exploring the code in the GitHub repository.

Propel ECG (Build Status)

Propel is strongly unit tested. Propel is developed under Continuous Integration and with a Test Driven Development approach. We use Travis-CI to automatically build our projects, and here are the statuses:

Propel 1.6 Propel2 (unstable) sfPropelORMPlugin PropelBundle PropelServiceProvider