2014-10-24 7 views
16

부모로부터 모든 문서를 상속 받고 싶다면 phpDocumentor의 @inheritDoc에 대한 올바른 구문은 무엇입니까? 어쩌면 하나 이상의 구문이 정확할까요? phpDocumentor의 inheritDoc에 대한 올바른 구문

  • {@inheritdoc}
  • {@inheritDoc}

  • @inheritdoc 문서 @inheritDoc
    1. 내 생각은 매우 모호합니다. PhpStorm은 모든 것을 지원하는 것 같지만 어쩌면 구문을 사용하여 문서를 생성하는 데 어려움이 있습니까?

  • 답변

    37

    자식 요소는이 태그가 필요한없이 부모 문서 블록 에서 거의 모든 것을 자동으로 상속해야합니다. 그렇지 않으면 모든 구현 메소드가 원래 인터페이스의 문서로 얻지 못한 채 다시 문서화되어야합니다.

    간단하게하는 docblock 없이 상속 요소는 자동으로 부모의 docblock에서 모든을 상속합니다.

    @inheritdoc 태그의 유일한 목적은 하나를 부모 문서 블록 (그 부모의 자세한 설명)에서 가져 오는 것을 돕는 것입니다. 아이가 이미 이것을 사용할 수 없어야하는 유일한 이유는 아이가 먼저 가서 자신의 docblock을 가진 경우입니다. 이제 자식 이 부모 문서 블록을 복사하지 않고도 거의 모든 것을 상속해야합니다 ... 부모의 자세한 설명 제외. 경우 자식 docblock은 어떤 이유로 과 자신의 docblock을하기로 결정했습니다 당신이 여전히 다음, 부모의 긴 설명을 상속하려는 당신이 아이에 @inheritdoc을 넣어 곳 부모 긴 설명이 표시되는 위치를 docblock 결정합니다. 따라서, 아동은 자신의 간단한 설명과 상세한 설명을 가질 수 있고, 여전히 은 그 아동의 긴 설명과 관련하여 지정된 지점에 그 부모의 긴 설명을 포함한다. 이것은이 태그가 태어난 유일한 이유입니다 :-)

    IDE 자동 완성과 관련해서는이 태그와 관련하여 IDE 전반에서 일관된 동작을 보았다고 말할 수는 없습니다. 또한,이 태그 이 상위 docblocks에서 상속 된 정보가 발생하는 이유 인이라는 가정이있는 프로젝트를 보았습니다.

    +4

    나는 대답이 거의 다 있다고 생각하지만, 당신은 {@inheritDoc}을 의미하는지 분명히해야합니다. 중괄호는 인라인이라고 분명하게 말하면서 이것은 당신이 말했던 것처럼 긴 desc에서만 가져온다. 오용 인 {@inheritdoc}에 대한 참고 사항과 새로운 @inheritDoc 태그 (https://www.phpdoc.org/docs/latest/guides/inheritance.html#the-inheritdoc-tag)를 참조하십시오. –

    +0

    '@ inheritDoc'은 문서가 의도적으로 누락되었다는 것을 독자들에게 알리기 위해 레거시 코드베이스에서 편리합니다. 문서 생성자는 편집자/Github에서 코드를 보는 사람을 필요로하지는 않습니다. (분명히 [명백하게] 명시 적으로 (https://github.com/php-fig/fig-standards/blob/master/proposed/phpdoc).md # 61-making-inheritance-explicit-inheritdoc-tag)도 초안 표준에서 사용하고 있습니다.) – Tgr

    1

    나는 IDE 지원에 대해 아무것도 모르지만 documentation{@inheritDoc}으로 표기합니다.

    +0

    문서는 또한'{@inheritdoc}'https://manual.phpdoc.org/HTMLSmartyConverter /HandS/phpDocumentor/tutorial_tags.inlineinheritdoc.pkg.html – GusDeCooL

    +0

    [docs.phpdoc.org] (https://docs.phpdoc.org/guides/inheritance.html#the-inititdoc-tag) 문서에 '{@inheritDoc}'에서 DocBlock의 _all_ 내용을 부모/인터페이스의 내용으로 명시 적으로 바꾸기 위해이 태그의 사용법을 다룹니다 (빨간색 "중요"단락 참조). 원래 인라인'{@inheritDoc} '태그, 부모의 설명을 포함하는 새로운/잠재적 인'@ inheritDoc' 태그를 포함하고 있습니다.이 태그는 전체 내용을 대체합니다 (이미 일부 클라이언트에 의해 그런 방식으로 사용되고 있습니다). –