我有一个用于登录的laravel软件包。它是这样使用的。
activity()
->performedOn($model)
->causedBy($user)
->log('Look, I logged something');
active()
助手返回供应商类ActivityLogger
,该类按类名从容器中获取。
我必须添加额外的方法到供应商记录器,所以代码看起来像:
activity()
->performedOn($model)
->causedBy($user)
->relates('#123') // new decorator
->log('Look, I logged something');
我创建了一个子类,并将容器中的vendor类替换为新类。一切正常,除了phpstan对活动记录器中未找到的
相关方法的投诉。
我可以说phpstan,对于我的应用程序,ActivityLogger
被MyActivityLogger
所取代吗?
我猜您可以使用存根文件覆盖活动
函数的返回类型。
存根/activity.stub
:
/**
* @phpstan-param string $logName
* @phpstan-return YOUR_CUSTOM_OBJECT_TYPE_HERE
*/
function activity(string $logName = null) {}
然后在phpstan中。霓虹灯
config文件:
parameters:
stubFiles:
- stubs/activity.stub