object instantiation on return from find* methods
flug opened this issue · 3 comments
Currently, object instantiation is done through a new new $type()
closed to the constructor, which requires having setters or public properties outside the constructor.
Therefore, I propose creating an object mapper so that, regardless of where the fields are, the object is correctly rehydrated.
I have started developing a classMapper that takes mappers via a decorator, similar to how the Symfony serializer might work. Would this be suitable? @clementtalleu
the initial idea was to impose public methods, but this could be a good solution, we just need to make sure we don't degrade performance (there's no reason to).
yeah but it's a bit of a pain because it makes the object inconsistent
Another option is to do things like the Doctrine ORM and ODM: bypass the public API of the class, by instantiating without calling the constructor and assigning properties using Reflection, which leaves the public API totally free for the needs of the project itself.