我有这样的方法:
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抛出错误“方法get在类中找不到”。我尝试过phpdoc,但它不起作用(如你所见,我使用SILEX微框架)
发布于 2016-01-31 21:53:49
自动完成在这一步被卡住了,因为它不清楚来自数组的值是什么(即使它是一个像数组一样行为的对象)。
$controller = $this->app['controllers_factory'];有两种可能性。首先,如果您有一个由共享单个类型的元素组成的数组,则可以像这样指定类型:
/**
* @var Application[]
*/
private $app;另一种方法是指定内联变量的类型:
/** @var Application $controller */
$controller = $this->app['controllers_factory'];这两个选项都受PHPStorm支持。
https://stackoverflow.com/questions/35112698
复制相似问题