2017-10-15 17 views
2

__call 클래스를 사용하여 클래스를 2 개 확장하는 경우 @method을 사용하면 메소드가 존재 함을 IDE에 알릴 수 있습니다.@see를 PHPDoc의 @method 행에 사용할 수 있습니까?

그러나 IDE에 메소드 선언으로 건너 뛰라고 요청하면 @ method-row로 끝납니다. 위 또는 아래 행에 @see 행을 추가하는 방법이 있습니다. 하지만 그 행과 구분자 행을 추가하면 PHPDoc이 길게/길게 3 배가됩니다.

동일한 행에 @see을 추가 할 수 있습니까?

일부 예제는 그대로 사용하고 다른 일부는 내부에서 사용합니다. {}. 내 IDE (PhpStorm)에서 테스트했고 @see 선언에 대한 점프는 별도의 행에있는 경우에만 작동합니다.

@method과 같은 행에 @see을 사용할 수있게 해주는 PHPDoc가 있습니까? 그렇다면 올바른 구문은 무엇입니까?

예 :

<?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()); 

답변

1

하는 PHPDoc 아직 공식적인 표준이 없습니다. PHPDocumentor는 사실상의 표준이지만 PHP FIG는 하나에 대해서도 작업하고 있습니다. the PHPStorm docs에서

:

하는 PHPDoc 의견에서, PhpStorm 젠드, PEAR 및 기타 표준을 준수 서식 옵션을 지원합니다.

당신과 나는 둘 다 그것이 PHPStorm이 지원하는 것을 정확히 파악하기 위해 시행 착오를 겪었음을 발견했습니다. 그들의 설명에 링크를 표시합니다 @see 태그가 지정 긴 설명에

구조 요소, 또는 인라인 텍스트 :

PHPDocumentor 지원을 @see 인라인을 수행합니다.

PHP도의 proposed standard 상태 :

특정 태그가 "태그"정의의 마지막에 "인라인하는 PHPDoc"섹션을 가질 수는 ... 예는 @method 태그입니다. 이 태그는 "인라인 PHPDoc"을 사용하여 매개 변수, 반환 값 또는 함수 및 메서드에서 지원하는 다른 태그에 대한 추가 정보를 제공 할 수 있습니다.

이상하게도 @method 정의는이를 명확하게하지 않습니다.

필자는 PHPDoc 주석에서 @method 행에 @see를 사용할 수 있지만 PHPStorm이 아직 그것을 인식하지 못한다는 것을 의미합니다. 구문이 정확하고 "표준"에 따라 @method의 끝 부분에 남아 있어야합니다.