2017-06-22 3 views
1

Ich habe eine Frage bezüglich der Spezifikation einer Funktion von einem Controller. Die folgende Funktion gibt die Serviceeinheit Manager, oder es sollte:Zurückgegeben Typ sollte EntityManager Symfony

/** 
* @return EntityManager 
*/ 
public function getEntityManager() 
{ 
    $entityManager = $this->get('doctrine.orm.default_entity_manager'); 

    return $entityManager; 
} 

So sagte die Rückleitung

Return value is expected to be '\Doctrine\Orm\EntityManager', 'object' returned. 

Ok, ich weiß, dass die in der Beschreibung der Funktion, dass der zurück Typ Objekt ServiceName, aber wie kann diese Situation gemanagt werden? Ich möchte, dass der Typ der serviceName ist, nicht der Objekttyp. Wenn ich in der Rückgabespezifikation EntityManager mit Objekt modifiziere ist ok, aber nicht was ich will. Kann jemand mit einem Rat helfen?

EDIT:

/** 
* @var $entityManager EntityManager 
* 
* @return EntityManager 
*/ 
public function getEntityManager() 
{ 
    $entityManager = $this->get('doctrine.orm.default_entity_manager'); 

    return $entityManager; //still receive the warning here 
} 
+0

nicht sicher, ob ich verstehe die Frage, aber ich nehme an zu beheben können Sie versuchen, mit @ var, um $ entityManager vom Typ EntityManager zu definieren – Cerad

+0

Und wie nennt man das? Wo bekomme ich den Fehler? – Stony

+0

Ich erhalte eine Warnung in der Methode. @Stony – IleNea

Antwort

0

Wenn die Warnung von Ihrem IDE gezeigt wird, und es ist nicht eine von PHP geworfen Ausnahme selbst dann von einem fehlenden phpdoc kommt.

Um das Problem (und bekommen richtige Auto-Vervollständigung für $entityManager fügen Sie den @var Docblock direkt über der Variablenzuweisung innerhalb der Funktion.

/** 
* @return EntityManager 
*/ 
public function getEntityManager() 
{ 
    /** @var EntityManager $entityManager */ 
    $entityManager = $this->get('doctrine.orm.default_entity_manager'); 

    return $entityManager; 
} 
Verwandte Themen