【发布时间】:2018-06-03 20:24:08
【问题描述】:
从 php7 开始,我们已经知道可以声明函数的返回类型。然后,如果该函数返回其他内容,则会引发异常。
现在我想在我的 Symfony 项目中的一个函数返回一个 Doctrine 实体时使用这个新功能。所以我尝试声明一个这样的函数:
public function getEntity(array $conditions, string $entityClass): ?object
{
// some logic...
return $queryBuilder->setMaxResults(1)->getQuery()->getOneOrNullResult();
}
如您所见,它必须返回 null 或 object 变量。但是,object 似乎没有按预期工作,因为我遇到了异常:
类型错误:返回值 HelperBundle\MyHelper::getEntity() 必须是 HelperBundle\object 的实例或 null,AppBundle\Entity\MyEntity 实例返回
我实际上不确定这条消息的含义:返回的对象应该派生自位于HelperBundle 的类还是什么?
但一般来说,有没有一种方法可以在不使用自定义基类或接口的情况下为通用 Doctrine 实体声明返回类型?
【问题讨论】:
-
投反对票到底是什么?