Doctrine gibt Ihnen ein Proxy-Objekt aus einer automatisch generierten Klasse, die Ihre Entität erweitert und \Doctrine\ORM\Proxy\Proxy
implementiert. Sie können den Code für diese automatisch generierten Klassen in app/cache/dev/doctrine/orm/Proxies/
anzeigen.
Das Proxy-Objekt ermöglicht eine Reihe von Verhaltensweisen, die Doctrine bietet, die Sie sonst explizit in Ihrer Entität codieren müssten, einschließlich Unterstützung für das verzögerte Laden von Eigenschaften. Wenn Ihr Objekt z. B. eine Referenz auf eine andere Entität hat (z. B. aus einer Assoziation), möchten Sie diese Referenzen nicht unbedingt immer laden, wenn Sie Ihren Datensatz User
abrufen, da dies möglicherweise nicht der Fall ist relevant die ganze Zeit. Lazy-Loading ermöglicht das spätere Einlesen von Daten.
Um dieses verzögerte Laden durchzuführen, muss die Entität Zugriff auf Doctrine haben, damit Doctrine die relevanten Daten abrufen kann. Dies geschieht über eine __initializer__
-Eigenschaft, die für das Proxy-Objekt bereitgestellt wird. Der Rest passiert dann, behandelt von Doctrine, ohne dass Ihr Code die Details kennen muss.
Warum verwenden Sie nicht einfach $ em-> getRepository ('AppBundle: User') -> find ($ id) '; –