【问题标题】:How to comment class for code completion in phpstorm如何在 phpstorm 中为代码完成注释类
【发布时间】:2013-09-30 10:57:18
【问题描述】:

假设我有一堂课

class Class1
{
    public function method1(){
        return "hello world";
    }

}

我有另一个类在一个类中使用它

class Class2
{
     /** @var $firstClass Class1 */
     private $firstClass;

     public function __construct($firstClass)
     {
            $this->firstClass = $firstClass;

     }

     public function method2()
     {
            return $this->firstClass-> "I want code completion to work here"
     }
 }

如何使用 PHPDoc 使代码完成工作。我已经在 phpdoc 中搜索范围、声明和各种东西。我无法弄清楚注释行的条款或位置,以便 phpdoc 选择它。

我正在使用 phpstorm。救命!

【问题讨论】:

  • 您的示例运行良好(在 v6.0.3 和 v7 EAP 版本中检查)。可能您的真实代码与示例不同。顺便说一句 - 为类变量/字段编写 PHPDoc 注释时不需要变量名(因为这样的 PHPDoc 注释 必须 放在该字段之前),这应该足够了:/** @var Class1 */ private $firstClass;跨度>
  • 我不得不在 PHPDoc 注释中手动添加变量名,否则我没有得到自动完成。比如像这样(不加$newUser,自动补全不起作用)。 /** @var $newUser \Model\User */

标签: php phpstorm phpdoc


【解决方案1】:

检查您的类命名空间。

如果类有命名空间,请确保您在 cmets 或别名中正确定义它们。
评论示例:

...
    /** @var \vendor\namespace\Class1 */
    private $firstClass;
...

别名示例:

use \vendor\namespace\Class1;
...
    /** @var Class1 */
    private $firstClass;
...


检查项目目录定义。

如果您的类目录未在项目设置中定义,PHPStorm 无法索引这些类。在这种情况下,代码完成将不起作用。如何set up project directories in PHPStorm


清除 PHPStorm 缓存。

有时 PHPStorm 缓存变得无效。因此,代码完成可能无法正常工作。 Official how to cache cleanup.

【讨论】:

    猜你喜欢
    • 2018-07-31
    • 1970-01-01
    • 2016-10-28
    • 2017-03-14
    • 2012-09-22
    • 2011-11-15
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多