2017-06-22 46 views
1

我有一個關於控制器的功能規格的問題。下面的函數返回的服務實體管理器,或者它應該:返回的類型應該是entityManager symfony

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

    return $entityManager; 
} 

所以,回行說

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

好吧,我知道,在功能規格說,返回類型爲對象ServiceName,但如何管理這種情況?我想要的類型是serviceName,而不是對象類型。如果我在對象的返回規範EntityManager中修改可以,但不是我想要的。任何人都可以提供建議嗎?

編輯:

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

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

不知道我理解這個問題,但我想你可以嘗試使用@ var定義$ entityManager爲EntityManager的類型 – Cerad

+0

你怎麼稱呼它?你在哪裏得到錯誤? – Stony

+0

我在方法中收到一個警告。@Stony – IleNea

回答

0

如果你IDE所示的警告,然後它來自缺少PHPDoc的它不是通過PHP本身拋出的異常。

爲了解決該問題(並獲得正確的自動完成功能爲$entityManager添加@var的docblock直接在函數內部的變量賦值以上。

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

    return $entityManager; 
} 
相關問題