8

我使用 PhpStorm 6.0.2 和 CakePHP 2.3。

在我的控制器文件中,我定义了它并为我的自定义组件自动完成:

/**
 * @property MysuperComponent $Mysuper
 */

关于这一点,在我的视图文件中,我将其定义为到达 Cake 的核心助手,这很有效:

/**
 * @var $this View
 */

我需要在我的视图中为自定义助手自动完成。我试过这个但没有奏效:

/**
 * @property Myelegant $MyelegantHelper 
 */

当我这样做时,这部分工作:

/**
 * @var $Myelegant MyelegantHelper
 */

我得到这个$Myelegant->自动完成。但这还不够。我需要这样的自动完成:$this->Myelegant->

注意:自动完成功能成功地适用于视图 (ctp) 文件中的核心帮助程序。但不适用于自定义助手。

4

4 回答 4

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 键时,它将自动写入类名)

于 2013-06-06T11:29:35.797 回答
2

您是否尝试过查看这篇文章:

http://blog.hwarf.com/2011/08/configure-phpstorm-to-auto-complete.html

查看“在视图中设置助手自动完成”部分。希望这会有所帮助。

于 2013-06-04T01:23:08.963 回答
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。希望这对其他人有帮助......

于 2016-03-03T14:23:40.573 回答
0

很简单,在 CakePHP 3.x 中测试到 PHPStrom,支持命名空间。

添加到文件views.ctp类型PHPDoc

<?php /** @var $this Cake\View\View  */  ?>
于 2016-11-16T02:18:54.377 回答