提问者:小点点

如何说phpstan类被child替换


我有一个用于登录的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,对于我的应用程序,ActivityLoggerMyActivityLogger所取代吗?


共1个答案

匿名用户

我猜您可以使用存根文件覆盖活动函数的返回类型。

存根/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