Doctrine php7+ 类型提示,代理声明错误
Doctrine php7+ type hinting, Declaration of Proxies error
我经常收到这个奇怪的错误
Warning: Declaration of Proxies\__CG__\AppBundle\Entity\MyEntity::setName(string $name):
AppBundle\Entity\MyEntity should be compatible with AppBundle\Entity\MyEntity::setName(?string $name):
AppBundle\Entity\MyEntity
到底为什么会这样?为什么我不能
public function setName(?string $name): self
{
$this->name = $name;
return $this;
}
作为我的setter?如果我删除“?”,它会起作用,但我确实需要它用于其他目的
正如我在评论中提到的那样:根据 this issue 旧版本的 doctrine/common(特别是早于 2.7.1)如果您创建匹配的代理 class 可能会遇到问题正在使用可选参数类型提示。
更新 doctrine/common 似乎可以解决问题。
我经常收到这个奇怪的错误
Warning: Declaration of Proxies\__CG__\AppBundle\Entity\MyEntity::setName(string $name):
AppBundle\Entity\MyEntity should be compatible with AppBundle\Entity\MyEntity::setName(?string $name):
AppBundle\Entity\MyEntity
到底为什么会这样?为什么我不能
public function setName(?string $name): self
{
$this->name = $name;
return $this;
}
作为我的setter?如果我删除“?”,它会起作用,但我确实需要它用于其他目的
正如我在评论中提到的那样:根据 this issue 旧版本的 doctrine/common(特别是早于 2.7.1)如果您创建匹配的代理 class 可能会遇到问题正在使用可选参数类型提示。
更新 doctrine/common 似乎可以解决问题。