Silverstripe 在Php中,如何使用内联类型暗示设置变量的返回类型

Silverstripe 在Php中,如何使用内联类型暗示设置变量的返回类型,silverstripe,type-hinting,docblocks,scrutinizer,Silverstripe,Type Hinting,Docblocks,Scrutinizer,如何避免此“错误”: 基本上,DataObject::get_one的docblocks表示它返回一个DataObject,这是正确的,但大多数时候它是一个扩展DataObject的类-例如,在这种情况下,class HealthCheck扩展DataObject 如果我写: /**@var HealthCheck | null*/ $a=DataObject::get_one(HealthCheck::class,['Published'=>true]); 返回$a; 然后scrutizi

如何避免此“错误”:

基本上,
DataObject::get_one
的docblocks表示它返回一个
DataObject
,这是正确的,但大多数时候它是一个扩展DataObject的类-例如,在这种情况下,
class HealthCheck扩展DataObject

如果我写:

/**@var HealthCheck | null*/
$a=DataObject::get_one(HealthCheck::class,['Published'=>true]);
返回$a;

然后scrutiziner没有给我一个错误,但我确实希望/也不能这样写。

我们可以做以下操作:

return HealthCheck::get()->filter(['Published' => true])->first();

我们可以做到以下几点:

return HealthCheck::get()->filter(['Published' => true])->first();