我使用PhpStorm 6.0.2和CakePHP 2.3。
在我的控制器文件中,我定义了这个并获得自定义组件的自动完成功能:
/**
* @property MysuperComponent $Mysuper
*/
关于this,在我的视图文件中,我定义了这个以达到Cake的核心助手,这有效:
/**
* @var $this View
*/
我需要在视图中自动完成自定义帮助程序。我尝试了这个但是没有用:
/**
* @property Myelegant $MyelegantHelper
*/
当我这样做时,这部分起作用:
/**
* @var $Myelegant MyelegantHelper
*/
我得到此$Myelegant->
自动填充功能。但这还不够。我需要像这样的自动完成功能:$this->Myelegant->
注意:自动完成功能成功地适用于视图(ctp)文件中的核心帮助程序。但不适合自定义助手。
答案 0 :(得分:8)
添加新文件/app/View/HintView.php
在PHPDoc上添加自定义帮助程序的名称。
<?php
App::uses('View', 'View');
/**
* @property MyelegantHelper $Myelegant
* */
class HintView extends View {
}
在布局文件或查看文件(ctp文件)中,将此代码添加到顶部
/**
* @var $this HintView
*/
现在,您可以在视图中看到:
$this->MyElegant
->Blocks
->Cache
->Form
$this->MyElegant->somefunction()
anotherfunction()
oldfunction()
您不必从HintView扩展您的视图。它仅适用于PhpStorm的自动完成。
(请注意,您可以通过创建代码快捷方式来加快速度。例如,转到Settins / IDE Settings / Live Templates。添加新模板。例如“myeleg”代表“$this->MyElegant->
”所以当你写“myeleg”并按Tab键它会自动写出类名
答案 1 :(得分:2)
您是否尝试过查看此文章:
http://blog.hwarf.com/2011/08/configure-phpstorm-to-auto-complete.html
请查看“在视图中设置帮助程序自动完成”部分。希望这会有所帮助。
答案 2 :(得分:1)
我知道这是一篇旧帖子,但遇到了同样的问题。解决这个问题:
对我来说,我的自定义助手名为StatusHelper,因此需要 @property ,如下所示:
App::uses('Helper', 'View');
/**
* @property StatusHelper $Status
* */
class StatusHelper extends AppHelper {
然后在视图.ctp文件中,我只需要在顶部显示以下内容:
<?php /* @var $this View|StatusHelper */ ?>
现在,自动完成功能适用于我的PHPstorm在该视图中的核心视图变量以及我帮助程序中的任何方法。快乐的日子
使用Cake 2.5 - PHPstorm 10.希望这可以帮助其他人...
答案 3 :(得分:0)
很容易,在CakePHP 3.x中测试到PHPStrom,支持命名空间。
添加到文件views.ctp类型PHPDoc
<?php /** @var $this Cake\View\View */ ?>