返回的类型应该是 entityManager symfony

Returned type should be entityManager symfony

我有一个关于控制器功能规范的问题。以下函数 return 是服务实体管理器,或者它应该是:

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

    return $entityManager;
}

因此,return 行表示

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

好的,我知道在函数规范中说 returned 类型是对象 ServiceName,但是如何处理这种情况?我希望类型是 serviceName,而不是对象类型。如果我在 return 规范中修改带有对象的 EntityManager 是可以的,但不是我想要的。任何人都可以提供建议吗?

编辑:

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

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

如果警告由您的 IDE 显示并且它不是 PHP 本身抛出的异常,那么它来自丢失的 phpdoc。

为了解决这个问题(并为 $entityManager 获得正确的自动完成,在函数内变量赋值的正上方添加 @var 文档块。

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

    return $entityManager;
}