phpstan - 怎么说phpstan那个类被孩子代替了
问题描述
我有一个用于记录的 laravel 包。它是这样使用的。
activity()
->performedOn($model)
->causedBy($user)
->log('Look, I logged something');
activity()
帮助程序返回ActivityLogger
按类名从容器中获取的供应商类。
我必须向供应商记录器添加其他方法,因此代码将如下所示:
activity()
->performedOn($model)
->causedBy($user)
->relates('#123') // new decorator
->log('Look, I logged something');
我创建了一个子类,并在容器中用新的供应商类替换了供应商类。一切正常,除了 phpstan 抱怨relates
在ActivityLogger
.
我可以说我的应用程序的 phpstanActivityLogger
被替换为 phpstanMyActivityLogger
吗?
解决方案
我猜你可以使用存根文件来覆盖activity
函数的返回类型。
stubs/activity.stub
:
/**
* @phpstan-param string $logName
* @phpstan-return YOUR_CUSTOM_OBJECT_TYPE_HERE
*/
function activity(string $logName = null) {}
然后在你的phpstan.neon
配置文件中:
parameters:
stubFiles:
- stubs/activity.stub
推荐阅读
- python - 在 seaborn > 0.9.0 中加速 swarmplot/stripplot?
- python - 使用 LeavePGroupsOut 运行嵌套交叉验证后分别获取每个组的测试分数
- node.js - TypeError:无法读取我的 nodejs API 上的属性
- reactjs - 我正在尝试在功能组件中使用钩子,而它会引发意外的令牌解析错误。怎么了?
- c# - 在组合框中查找字符串
- asp.net-core - 更改运行在 Kubernetes 上的网络核心应用程序的配置
- vue.js - 使用 vue-router 在 Vuejs 3 上创建下一页按钮
- c# - JwtBearer TokenValidationParameters 似乎没有经过测试
- java - 如何使用 Jackson 仅根据键名中的模式将“平面”JSON 反序列化为复杂的 Java 对象?
- node.js - 我得到 - 错误:在缓存中找不到条目 - 在 sls 部署期间