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();