2013-07-01 2 views
0

자동 완성을위한 내 방법을 문서화하는 방법을 모르겠습니다.phpdoc @return과 지연로드

내 모델 교육에는 SeekableIterator 및 Countable을 구현하는 Db_MysqlResult를 반환하는 getAnimators() 메소드가 있습니다. 내가 예를 들어, 그것을 반복 할 때 Db_MysqlResult 내 애니메이터 객체를 생성합니다 :

나는 @return 쓸 수
<?php 
foreach ($training->getAnimators() as $animator) { 
    // Autocompletion shows me next, seek, etc. not getName 
    echo $animator->getName(); 
} 
?> 

애니메이터 [] 내 getAnimators에서() 그것은 Db_MysqlResult를 반환하기 때문에 그것이 사실이 아닌 경우에도?

미리 도움을 주셔서 감사합니다.

답변

0

당신은 그것의 방법을 자동으로 완성하도록 $ 애니메이터 변수를 찾고 있다면, 당신의 최선의 방법이에 @var 라인 힌트를 추가 할 수 있습니다 :

/** @var Animator $animator */ 
echo $animator-> 

일부의 IDE가 @var를 인식 할 수있는 능력을 가지고 line을 타입 힌트로 사용하여 자동 완성을 제공합니다.

그러나 $ training-> getAnimators()의 반환 값을 인식하고 foreach()에서 함께 묶이는 $ animator의 유형을 자동으로 인식하는 IDE는 알지 못합니다.

+0

그게 내가하고있는 일이지만, 나는 그것을 피하기를 좋아했을 것이다. 내 문제는 내 var $ animator에 대한 자동 완성을 얻는 방법이 아니라 내 객체가로드되는 방식에 따라 phpdoc을 작성하는 방법입니다. – DjLeChuck

+0

좋아, 나는 당신의 첫 진술에 의해, "자동 완성을위한 나의 방법을 문서화하는 방법"을 버렸다. getAnimators()가 실제로 Animator 객체를 미리 생성하고 SeekableIterator 컬렉션 (배열과 같지만 정확히 배열은 아닙니다)을 반환한다는 설명에 따라 "@return Animator []"는 그 Animator 객체의 컬렉션은 그것을 문서화하는 "올바른"방법입니다. "배열"의 각 멤버가 하나의 Animator 인스턴스이기 때문에 "Animator []"대신 "Animator []"가 표시되어야합니다. – ashnazg

+0

클래스는 SeekableIterator의 "현재"메서드에있을 때 인스턴스화되므로 처음에는 내 컬렉션에 내 Animator 객체가 포함되어 있지 않습니다. 즉, 문제입니다. 그러나 @return Animator []를 쓰면 좋을 것이므로 작성하겠습니다. – DjLeChuck