查看文件中CakePHP自定义帮助程序的PHPStorm自动完成
我使用PHPStorm6.0.2和CakePHP2.3 在我的控制器文件中,我定义了这一点,并为我的自定义组件获取自动完成:查看文件中CakePHP自定义帮助程序的PHPStorm自动完成,cakephp,autocomplete,phpstorm,cakephp-2.3,Cakephp,Autocomplete,Phpstorm,Cakephp 2.3,我使用PHPStorm6.0.2和CakePHP2.3 在我的控制器文件中,我定义了这一点,并为我的自定义组件获取自动完成: /** * @property MysuperComponent $Mysuper */ 关于,在我的视图文件中,我将其定义为达到Cake的核心帮助者,这是有效的: /** * @var $this View */ 我需要在视图中为自定义帮助程序自动完成。我试过了,但没有成功: /** * @property Myelegant $MyelegantHelp
/**
* @property MysuperComponent $Mysuper
*/
关于,在我的视图文件中,我将其定义为达到Cake的核心帮助者,这是有效的:
/**
* @var $this View
*/
我需要在视图中为自定义帮助程序自动完成。我试过了,但没有成功:
/**
* @property Myelegant $MyelegantHelper
*/
当我这样做时,这部分起作用:
/**
* @var $Myelegant MyelegantHelper
*/
我得到这个$Myelegant->
自动完成。但这是不够的。我需要这样的自动完成:$this->Myelegant->
注意:Autocomplete成功用于核心帮助程序内部视图(ctp)文件。但不适用于自定义帮助人员。您是否阅读过这篇文章:
请参阅“在视图中设置辅助对象自动完成”一节。希望这能有所帮助。添加新文件/app/View/HintView.php
在PHPDoc上添加自定义助手的名称
<?php
App::uses('View', 'View');
/**
* @property MyelegantHelper $Myelegant
* */
class HintView extends View {
}
现在在视图中,您可以看到如下所示:
$this->MyElegant
->Blocks
->Cache
->Form
$this->MyElegant->somefunction()
anotherfunction()
oldfunction()
你不必从HintView扩展你的观点。它仅用于PhpStorm的自动完成
(请注意,您可以通过创建代码的快捷方式来加快速度。例如goto Settins/IDE Settings/。添加新模板。例如“
$this->MyElegant->
”的“MyLeg”,因此当您编写“MyLeg”并按Tab键时,它将自动写入类名)我知道这是一篇旧文章,但是遇到了同样的问题。这样解决:
对我来说,我的自定义帮助程序称为StatusHelper,因此需要@属性,如下所示:
App::uses('Helper', 'View');
/**
* @property StatusHelper $Status
* */
class StatusHelper extends AppHelper {
然后在view.ctp文件中,我只需要在顶部显示以下内容:
<?php /* @var $this View|StatusHelper */ ?>
现在,对于核心视图变量以及我的助手中的任何方法,自动完成都适用于该视图中的PHPstorm。。快乐的日子
使用滤饼2.5-pHPForm 10。希望这对其他人有所帮助。很简单,在CakePHP 3.x到PHPStrom中测试,支持命名空间 文件views.ctp类型PHPDoc的加载项
<?php /** @var $this Cake\View\View */ ?>
我认为这与蛋糕无关。检查PHPstorm设置/文档,它可能没有激活.ctp文件上的自动完成功能?已编辑的问题。是否检查了PHPstorm中的路径?它可能没有检查自定义助手所在的路径。我相信OP已经有了答案:。如果是--我建议制定解决方案/体验并将其作为答案发布,这样对其他人会有用。正如我在问题中指出的,我尝试了这个*@var$this视图
,但它只自动完成核心帮助程序。/***@var$this视图| StatusHelper*/
语法正确吗?[这是用于蛋糕2.x]管道`|`将两个类映射到.CTP中的$this
变量;然后PhpStorm将在标准视图方法$this->Html->{method}
和您的自定义助手方法$this->Status->{method}
上帮助自动完成-我不确定PHPDoc语法的正确性,但PhpStorm喜欢它,并给我自动完成,我每天都使用它!你能帮我更正一下吗?哦,对不起,我没有理解你的意图,我试过逐字逐句的语法。您有一个额外的星号(*@var
),如果删除它,您将获得$this->Status
的代码智能。另外,由于我们只需要一个类型提示指示符,而不是一个合适的docblock,所以我们也可以使用/**/代码>而不是/***/代码>(这适用于这里的所有答案)。对,明白了!我将编辑我的答案,这样就不会有人因为*
-谢谢,我已经将假星号编辑掉了(/***@var
到/***@var
)。这两种语法(/***/
和/***/
)都可以工作,只是它们略有不同(如果您实际使用phpDocumentor来呈现文档,则第二种语法将被忽略)。尽管它很难看,但总比编辑/lib/Cake/View/View.php
要好。还值得注意的是,当您扩展内置帮助程序并使用className
屏蔽它们时,它也很有用。
<?php /** @var $this Cake\View\View */ ?>