我可以在PHPDoc中的@method行使用@see吗?

时间:2017-10-15 14:28:34

标签: php phpstorm phpdoc

使用PHP __call使类扩展2个类时, 您可以使用@method让IDE知道方法存在。

但是当要求IDE跳转到方法的声明时,你最终会在@方法行上,一种不被卡住的方法就是在上方或下方添加@see行。但是添加该行和分隔符行会使PHPDoc变长3倍。

是否可以在同一行添加@see

看一些使用它的例子,以及其他一些在{}内使用它的例子。 在我的IDE(PhpStorm)中对它进行了测试,只有在@see的单独行上才能跳转到@see的声明。

PHPDoc是否允许我们在@method的同一行使用<?php class a { function ma() { return "a"; } } class b { function mb() { return "b"; } } /** * Class c * * @method string mb() { @see b::mb() } */ class c extends a { /** @var b b */ public $b; function __construct() { $this->b = new b(); } function mc() { return "c"; } function __call($name, $arguments) { return call_user_func_array([$this->b, $name], $arguments); } } $c = new c(); var_dump($c->mb()); ?如果是这样,那么正确的语法是什么?

示例:

{
"vr-sessions" : {
"-KvDNAFD_BxlKEJ958eX" : {
  "interview" : "Android",
  "questions" : {
    "-KvG7BuWu4eI52pq-6uH" : {
      "playaudio" : "audio1",
      "question" : "Why cannot you run standard Java bytecode on Android?"
    },
    "-KvG9rxQv5DWJa1EMnhi" : {
      "playaudio" : "audio2",
      "question" : "Where will you declare your activity so the system can access it?"
    }
  }
},
"-KvDNOE8YhVdgovxrzrN" : {
  "interview" : "DevOps",
  "questions" : {
    "-KvMPd0v9BXnjYZxFm5Q" : {
      "playaudio" : "audio3",
      "question" : "Explain what is DevOps?"
    },
    "-KvMPi24OKeQTp8aJI0x" : {
      "playaudio" : "audio4",
      "question" : "What are the core operations of DevOps with application development and with infrastructure?"
    },
    "-KvMPqYxJunKp2ByLZKO" : {
      "playaudio" : "audio5",
      "question" : "Explain how “Infrastructure of code” is processed or executed in AWS?"
    }
  }
},

1 个答案:

答案 0 :(得分:3)

PHPDoc还没有正式的标准。 PHPDocumentor是事实上的标准,但PHP FIG也正在开发。

来自the PHPStorm docs

  

在PHPDoc评论中,PhpStorm支持符合ZEND,PEAR和其他标准的格式选项。

正如你和我都发现的那样,需要反复试验来确定PHPStorm支持的确切内容。

PHPDocumentor确实支持@see内联:

  

结构元素或带有@see标记的长描述中的内嵌文本将在其描述中显示链接。

PHP FIG&#39; proposed standard州:

  

特定标签可能有一个&#34;内联PHPDoc&#34;标签结尾处的标签&#34;标签&#34;定义......一个例子是@method标签。可以使用&#34;内联PHPDoc&#34;来扩充此标记。提供有关参数,返回值或功能和方法支持的任何其他标签的其他信息。

奇怪的是@method定义并没有明确这一点。

我认为这意味着你可以在PHPDoc评论的@method行中使用@see,但是不要期望PHPStorm能够识别它。您的语法是正确的,并且符合&#34;标准&#34;它应该保留在@method的末尾。