这发生在一个没有使用 Symfony 框架构建的遗留 PHP 应用程序中,只使用了 Http-Foundation 的一部分。所以没有什么为我们创建请求,而是我们在一些设置代码中使用 GLOBALS 创建它。这是作为现代化过程的一部分完成的(遵循 Paul M. Jones 的书,第 5 章:用依赖注入替换全局)。
$_GET
它工作得很好,比到处都有,等要好得多$_SERVER
......除了在 PhpStorm 中,每次访问 Request 对象中的字段时都会出现警告:
“在静态中找不到字段‘服务器’”
Request::createFromGlobals
如果我从( )中删除 PHPDoc@return static
或将其更改为 ( @return self
),则 PhpStorm 将按需要工作。
或者,如果我自己使用 GLOBALS ( $request = new Request($_GET, $_POST, array(), $_COOKIE, $_FILES, $_SERVER);
) 创建请求,就像createFromGlobals()
正在做的那样,那么 PhpStorm 很高兴。
有没有办法在使用时解决这个问题Request::createFromGlobals()
?
编辑:感谢@LazyOne,解决方案是添加以下类型提示更改:
/** @var Request $request */
$request = Request::createFromGlobals();