When comparing Doctrine ORM vs Propel, the Slant community recommends Doctrine ORM for most people. In the question“What are the best PHP ORMs?” Doctrine ORM is ranked 2nd while Propel is ranked 5th. The most important reason people chose Doctrine ORM is:
Since Doctrine is inspired by Hibernate, a very popular Java ORM. It should feel very familiar to Java developers who need to use a PHP ORM, especially if they have used Hibernate before.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Should feel familiar to Java developers
Since Doctrine is inspired by Hibernate, a very popular Java ORM. It should feel very familiar to Java developers who need to use a PHP ORM, especially if they have used Hibernate before.
Pro Easy to find support
Doctrine is considered the most popular PHP ORM out there. As such, it has a big community which brings a lot of perks. Namely a great deal of learning resources and it's easier to find help for any issue you might have.
Pro Good, constant support
Doctrine is the default ORM for Symphony, one of the most widely used PHP frameworks. This means that it's rather well-supported and will continue to be supported at least for as long as Symphony is.
Pro Provides a flexible alternative to SQL
Doctrine implements its own object-oriented SQL dialect called DQL. It's inspired by Hibernate's HQL and it provides developers with a powerful alternative which helps in gaining flexibility without having to resort to code duplication.
Pro Powerful and versatile ORM
It requires some learning curve, but at the end it's a powerful and versatile ORM. We've been using it for a very big database in a realtime multi-frontend app with zero issues.
Pro Support for a large number of databases
Since it uses PDO, it supports all PDO enabled databases, with MySQL, SQLite, PostgreSQL, MSSQL, Oracle included.
Pro Simple to learn
Propel uses Active Record, which is a rather simple to understand implementation of an ORM. It's also the most widely adopted implementation. In simple words: an object represents a row, you can create or edit an object to create or edit the corresponding row.
Cons
Con Not so easy to setup
You follow the tutorial, there are some errors, you search google, you fix them, then you go for it, then new errors... after 30mins not working, bye bye.
Con Requires learning a new query language
Since you need to know DQL to use Doctrine to its full potential, you need to take the time to learn and get used to it.
Con May be overkill for small projects
Since it's a fairly large library, it would be a bit of an overkill to be used in a small project. Since for example it wouldn't really make much sense for the ORM to take up to half of the project's size.
Con No persistent db connections
If you have a db in a separate server, it will have a very poor performance.
Con Backward compatibiliy breaks
Since it's based on PHP 5.4+, using an older version of PHP may cause issues.