Use Doctrine instead of Harp

I have reviewed several PHP ORMs. I have focused on data mappers. I was most strongly considering Spot, Harp and Doctrine. I was really looking at a data mapper which would would be minimalistic, allowing me to map whichever objects I decided to the persisting layer and yet with a lot of capabilities. I started looking for an alternative to Harp in the first place, because it was not finished yet and there big pieces missing, but later I've found more things I didn't like. For example the previously mentioned data mapper capabilities. Harp is still acting a lot like an ActiveRecord ORM. Spot also requires you extend base model classes and it does have unneeded magic.

I was always thinking of Doctrine as a big monster ORM which is quite slow and cumbersome.

However starting to use it now it feels like you could use even a small part of it. I would not see it is minimal. It has a lot of features, but these are needed, done-right features. I have reviewed their guides on security, caching and speed optimizations. All of them seems logical, nice and easy. They are certainly going forward with that as well.

I am also not really concerned with performance at the moment.

One of my biggest concerns against Doctrine was the use of annotations, YAML or XML configuration. I prefer annotations over the others. One of the problems is the magic, the other is the performance. After reading how they process and cache the annotations I'm not concerned with the performance side anymore. About the magic - I still don't like the comments of the code to actually be read and "executed". But I'll experiment with that. Looking at various data mappers, I don't there is an easy way a nice interface to be achieved together with complete decoupling of the business logic and the persistence layer without such configuration.

I was also amazed of the power of their CLI, generation tools and other goodies which were possible only, because of the static configuration about the entities.

In conclusion - this is an experiment and we'll see what would happen.