When comparing Eloquent ORM vs Doctrine ORM, the Slant community recommends Doctrine ORM for most people. In the question“What are the best PHP ORMs?” Doctrine ORM is ranked 2nd while Eloquent ORM is ranked 3rd. 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 Large community
Sometimes your issue can be hard to find, but certainty it was already answered before.
Pro Good documentation
While hard to find, the Laravel's Docs and API documentation are very good.
Pro Fast learning curve
Laracast and other public resources can set up your learning curve as fast as possible.
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.
Cons
Con Too much magic methods
The debug hell.
Con Low performance
Eloquent tries to do too much magic, it gets slower than some concurrents.
Con No own datamapping
You gotta install plugins to be able to map your eloquent models; or you can use mutators, that results in very ugly model classes.
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.