我们在 laminas 项目上运行 phpstan 并遇到错误。
例如,在控制器中,我们有一些可以正常工作的标准代码。
$request = $this->getRequest();
if ($request->isPost()) { ... }
然而 phpstan 抱怨:
调用未定义的方法 Laminas\Stdlib\RequestInterface::isPost()
问题似乎是 getRequest() 实际上返回了 Laminas\Http\PhpEnvironment\Request 的一个实例,它确实从 Laminas\Http\Request 继承了 isPost 函数。但是RequestInterface中没有定义这个函数。
一种解决方案是在 RequestInterface 中定义 isPost,尽管我更愿意避免更改供应商代码。
有没有更好的方法来解决这个问题?