我有这样的方法:
public function connect (Application $app)
{
$controller = $app['controllers_factory'];
$controller->get('/login', function () {
return 'test';
});
return $controller;
}
一切正常,但我想在私人领域保存$ app,就像这样
private $app;
public function connect (Application $app)
{
$this->app = $app;
$controller = $this->app['controllers_factory'];
$controller->get('/login', function () {
return 'test';
});
return $controller;
}
在这种情况下,PHPStrom会抛出错误"方法在类#34;中找不到。我试过phpdoc,但它没有工作(如你所见,我使用SILEX微框架)
答案 0 :(得分:0)
自动完成功能在此步骤中陷入困境,因为它不清楚来自数组的值是什么(即使它是一个像数组一样的对象)。
$controller = $this->app['controllers_factory'];
有两种可能性。首先,如果您有一个由共享单个类型的元素组成的数组,您可以指定如下类型:
/**
* @var Application[]
*/
private $app;
另一种方法是指定内联变量的类型:
/** @var Application $controller */
$controller = $this->app['controllers_factory'];
PHPStorm支持这两个选项。