상수에 대한 PHPDocs를 작성하는 올바른 방법은 무엇입니까?


79

이 코드가 있습니다.

/**
 * Days to parse
 * @var int
 */
const DAYS_TO_PARSE = 10;
...

@var상수에 대해 사용하는 것이 정확 하다고 생각 하지 않으며 @constantPHPDoc 태그 가 표시되지 않습니다 . 이를 수행하는 올바른 방법은 무엇입니까?


지금까지 다음과 같음 define: 우려 stackoverflow.com/questions/2192751/...
hakre

나는 그 일을보고 독립 상수, 나는이 클래스 일정을 찾고있다 정의
Elzo Valugi에게


@Elzo const FOO = 1;는 클래스 컨텍스트 외부 에서도 작동합니다.
Gordon

이 사람은 @access 개인 사용 icosaedro.it/phplint/phpdoc.html을 ,하지만 난 당신이 상수에 대한 가시성을 제한 할 수 있다는 사실을 인식하지 오전
Elzo Valugi

답변:


-19

phpDoc으로 가져 오려면 다음을 사용하십시오.

@const THING

일반적인 구조 :

@const[ant] label [description]

클래스 상수와 define ()에 의해 시작된 전역 상수의 차이가 아닙니까? @const는 후자를 표시하기위한 것 같습니다.
Jan.

2
전자입니다. 방금 클래스 상수를 문서화했으며 생성 된 phpdocs에 설명이 올바르게 포함되어 있습니다. 그리고 2017 년 4 월 현재 영어 문서에는 아직 없습니다 @const!
Keith

2
@const유효하지 않으며 PHPDocumentor에 없습니다. 사용 @var.
Wade

151

PHP-FIG는 @var상수에 대한 사용 을 제안 합니다.

7.22. @var

@var태그를 사용하여 다음 "구조 요소"의 "유형"을 문서화 할 수 있습니다 .

  • 상수, 클래스 및 전역 범위
  • 속성
  • 전역 및 로컬 범위의 변수

통사론

@var ["Type"] [element_name] [<description>]


1
그래서 본질적으로 "상수"를 문서화하기 위해 사용하는 "변수"의 줄임말은 무엇입니까?
ankr

2
2017 년부터 using @const은 내 설명을 올바르게 출력하지만 @var클래스 상수에 대해서는 아무것도 출력하지 않습니다.
Keith

이것은 구식입니다. 현재 버전의 PSR-5 초안에서는 더 이상이를 구체적으로 언급하지 않습니다. 상수는 유형이 불변하고 항상 추론 될 수 있기 때문에 특정 유형 힌트가 필요하지 않다고 주장합니다. stackoverflow.com/a/50945077/752110
Yogarine

@Yogarine 상수에는 유형 힌트가 필요하지 않을 수 있지만 상수가 무엇에 사용되는지 문서화하는 것이 바람직 할 수 있습니다.
Brad Kent

122

@const정답 이 아닙니다 .

목록에있는 유일한 "공식"장소는 phpdoc.de이지만 사양은 1.0 베타로만 만들어졌고 사이트에는 이전에 사용한 적이없는 @brotherand와 같은 태그도 포함되어 @sister있으므로 해당 사이트에 대한 전반적인 신뢰도를 얻었습니다. ;-) 사실상 표준은 항상 phpDoc.org였습니다.

요컨대, 비공식 표준이 언급하더라도 문서 생성자가 지원하지 않으면 사용할 가치가 없습니다.

@var 맞다 지금은 PSR (위 목록의 마지막 링크)이 초안에서 벗어 났고 phpDocumentor, Doxygen, APIGen 및 기타 사용자가 PHPDoc을 이해하는 기반이되면 다음 @type의 후속 작업이 정확합니다.@var.



1
실제로 IDE에서는 전혀 문제가되지 않는 것 같습니다. 예를 들어 PHPStorm은 항상 실제 코드 값을 사용하여 유형을 찾습니다 (할당 된 값이 있어야하므로).
표시 :

3

Netbeans를 사용합니다. 이 형식을 사용할 때 전역 및 클래스 상수에 대해 phpDoc을 구문 분석합니다.

/** @const Global constant description */
define('MY_CONST', 10);

class MyClass
{
    /** @const Class constant description */
    const MY_CONST = 10;
}

1
@constNetbeans에서 클래스 상수를 제외 할 수 없습니까 ?
hakre 2014-08-12

4
방금 Netbeans 8에서 테스트했으며 @const전역 및 클래스 상수 선언 을 생략 할 수있었습니다 .
Sonny

3

유형은 항상 다음과 같기 때문에 상수 유형에 주석을 달 필요가 없습니다.

  • 스칼라 또는 배열
  • 선언시 알려진
  • 불변

@const또한 PHPDoc 표준의 일부가 아닙니다. PHP-FIG는 제안 @var하지만 이것은 PHPDoc에 의해 뒷받침되지 않으며 선언 자체에서 추론 할 수없는 정보를 추가하지 않습니다.

따라서 가독성을 위해 일반 PHPDoc docblock을 사용하여 상수를 문서화하는 것이 좋습니다.

class Foo
{
    /**
     * This is a constant.
     */
    const BAR = 'bar';
}

PHPDocs를 생성 할 때 상수를 설명하지만 주석은 깨끗하고 읽기 쉽게 유지됩니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.