在具有数据映射器模式的遗留项目中,我们有以下内容(摘录):
if($update->getModifiedCount() == 1)
{
echo "Section <".$key['name']."> removed from room <".$key['metadata']['room'].">."."\n";
}
上述方法是typehinted /**
* @param string $someSearchTerms
* @return User[]|null
*/
public function getModelsFor($someSearchTerms)
{
// snip
return $this->factory($results);
}
,其中User是抽象@return User[]
类的后代。
Model
方法在抽象映射器中定义,并且键入为:
factory
在PhpStorm 2016.2之前,这并没有突出显示为一个问题 - 它现在是,因为它检测到返回值不匹配,尽管它们在某种意义上确实是因为User是具体实现的模型。
如何摆脱此警告?