PHP strict_types 以及与不可见 TYPO3 记录的关系

PHP strict_types and relation to invisible TYPO3-record

模型的 属性 与 一个 其他记录的关系如下:

/**
 * @var \MyCompany\MyExtension\Domain\Model\OtherObject
 */
public $otherObject;

/**
 * @return OtherObject
 */
public function getOtherObject(): OtherObject
{
    return $this->otherObject;
}

现在,假设连接的对象是不可见的(例如,它是隐藏的或有时间限制的)。 Extbase 正在尝试分配 0,但 PHP 需要一个 OtherObject 的实例... Bam! - 你得到一个错误。

如何处理?隐藏或限时记录并不少见。

您要么需要 PHP 7.1 并使用可为空的 return 类型提示,例如 ?OtherObject,要么暂时完全删除类型提示。在任何情况下,您都不能依赖此处 returned 的内容,因此您的消费代码需要处理此问题。