이 질문은 일반적으로 약 DocBlocks이지만 내 사용 사례는 PHP에 관한 것입니다.DocBlock 클래스 유형 상속
는 다음과 같은 PHP 코드를 고려
<?php
class ParentClass {
/**
* Says 'hi' to the world.
* @return ParentClass Returns itself for chaining.
*/
public function say_hi(){
echo 'hi';
return $this;
}
}
class ChildClass extends ParentClass {
/**
* Says 'bye' to the world.
* @return ChildClass Returns itself for chaining.
*/
public function say_bye(){
echo 'bye';
return $this;
}
}
$c = new ChildClass;
$c->say_hi()->say_b| <- type hinting won't suggest "say_bye" here
?>
이 일부 체인 그냥 사소한 클래스입니다. 확장 클래스는 부모 클래스의 docblock이 자식 클래스의 메서드/속성이없는 특정 클래스 이름을 사용하기 때문에 형식 힌트를 잃어 버립니다.
우리는 유형 힌팅 기능을 원한다고 가정 할 때 (그렇지 않은 경우이 질문을 남겨 두십시오. 여기서는 쓸모없는 주장이 필요하지 않습니다.) 어떻게 수정해야합니까? 단지
- 변경하는 PHPDoc 기준 :
나는 다음과 같은 가능성을 함께했다 반환 유형을 전혀 지정하지 않으면 IDE가 무엇을 의미하는지 결정하게하십시오 (이것도 작동합니까?)
"@return $ this'가 편리 할지라도 Netbeans에서는 잘 작동하는 것 같습니다 ... – Christian
phpDocumentor 2.x는"@return self "및"@return $ this "를 인식하여 방법은 "유창한"방법입니다. 결과 문서에서 "Fluent Interface"메서드를 강조 표시하고 상속 된 부모 메서드를 표시하는 chlid 클래스 doc에 표시되는 반환 클래스 형식을 조정합니다. 일단 2.0.0 stable이 공식적으로 출시되면 IDE가이 구문에 대한 인식을 구현할 것입니다. 다행히 자동 완성 로직은 "유창한"인식과 메서드 상속을 올바르게 조정할 것입니다. – ashnazg