getEntityManager () und getDoctrine () in Symfony2

8

Gibt es einen Unterschied zwischen diesen beiden Aussagen:

%Vor%

Bezieht sich der Unterschied auf irgendein OOP-Konzept, das ich verpasse?

    
NightOwl85 29.11.2011, 18:44
quelle

3 Antworten

8

Im Allgemeinen kein Unterschied, seit

%Vor%

ist nur ein Helfer für

%Vor%

Sie können mehrere Entity Manager haben, und dann wird es einen kleinen Unterschied geben, wenn Sie ein Repository von einem bekommen:

%Vor%

Aber auch hier gibt es keinen Unterschied im Ergebnis.

Wenn alle anderen Dinge gleich sind, würde ich mit dem kürzesten gehen.

    
Elnur Abdurrakhimov 29.11.2011 19:10
quelle
1

Das Ergebnis ist das gleiche, aber wenn Sie den EntityManager für mehr als nur das Abrufen des Repositorys benötigen, kann es nützlich sein, ihn zu speichern und dann das Repository zu empfangen sowie andere Operationen wie flush durchzuführen:

%Vor%

Wie bereits gesagt, wenn Sie nur das Repository benötigen, gehen Sie mit der zweiten Anweisung, die kürzer und so einfach zu lesen ist wie die erste.

    
Sgoettschkes 29.11.2011 22:07
quelle
1

Es gibt keinen Unterschied. Wenn Sie sich den Quelltext von AbstractManagerRegistry.php anschauen. Sie können diesen Code sehen:

%Vor%

Wie Sie sehen, ruft getRepository () zuerst getManager () und dann getRepository () auf. Ich würde vorschlagen, das zweite zu verwenden, da es Intellisense in IDEs wie PHPSstorm gibt. Hoffe es hilft.

    
Sukhrob 21.02.2013 12:51
quelle

Tags und Links