In a move to increase performance and take advantage and support new PHP features, Propel 1.3 uses the native PDO database abstraction layer. This change has a number of implications, particularly for those who are executing SQL directly. PDO’s API is loosely similar to Creole’s, so this change shouldn’t require any major re-architecture.
The new features in Propel 1.3 that will affect upgrading are:
- New PHP minimum requirements
- Use of PDO instead of Creole
- New DSN format for build and runtime properties
- New transaction API
- Some method signature changes
- mysqli adapter is obsolete & has been removed
- New SPL autoload integration
- Some API changes for extending classes.
Propel 1.3 will be the default version of Propel bundled with Symfony 1.2. If you can’t switch to Propel 1.3 for whatever reason, you will still be able to use Propel 1.2 by installing the sfPropelPlugin.
The DbFinderPlugin is a symfony plugin that provides an easy API for finding Model objects, whether the underlying ORM is Propel or Doctrine. The idea behind this plugin is to write queries to retrieve model objects through an ORM, but fast. Inspired by Doctrine, Rails has_finder plugin and SQLAlchemy, DbFinder can be seen as “jQuery for symfony’s model layer”. It also aims at putting the things in the right order, meaning that writing a find() query will feel natural for those familiar with SQL.
Related article: The ORM isn’t important anymore