2017-06-22 90 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; 
} 
相关问题