在PhpStorm中自动完成ZF2视图助手

Bra*_*sen 5 php zend-view phpstorm zend-framework2

有谁知道PHPStorm是否有一些内置支持视图助手自动完成或是否有可能为它编写插件.我不想为此使用内联var定义,因为如果我使用大量的视图助手,这将是很麻烦的事情

$this->inlineScript()-> //I want some autocomplete here.

$this->translate('some translation')-> //Please give me autocompletion
Run Code Online (Sandbox Code Playgroud)

如果我使用var定义,它最终会像这样,但它会让我的观点变得混乱:

/* @var $inlineScript \Zend\View\Helper\InlineScript */
$inlineScript = $this->inlineScript();
$inlineScript-> //Now I have autocompletion goodness

/* @var $translate \Zend\I18n\View\Helper\Translate */
$translate = $this->translate();
$translate('some translation')-> //Now I have autocompletion goodness
Run Code Online (Sandbox Code Playgroud)

Ocr*_*ius 12

注意我将在评论中讨论的方法作为答案发布.

要键入不存在的方法,语法如下:

/**
 * @method \Zend\Mvc\Controller\Plugin\Url url(string $route = null, array $params = null)
 */
class MyClass
{
}
Run Code Online (Sandbox Code Playgroud)

这允许我们url在任何被识别为的变量上使用类型提示方法MyClass:

/* @var $a \MyClass */
$a->// typehint!
Run Code Online (Sandbox Code Playgroud)

您需要这样一个"假"类,然后启动您的视图脚本:

/* @var $this \MyFakeClass */
Run Code Online (Sandbox Code Playgroud)

这将为$this您提供视图脚本中的类型提示.你可以打开理想拉入请求对https://github.com/zendframework/zf2类似的东西https://github.com/zendframework/zf2/pull/3438