2011-08-11 4 views
0

우리는 이클립스 PDT 또는 젠드 스튜디오에 의해 자동 완성 될 수있는 객체를 만들려고 노력하고 있습니다. 그러나 우리는 한마디로 말했고 저는 여러분에게 물어보고 싶었습니다.PHP에서 비정상적인 형 변환

문제는 다음과 같습니다. Eclipse는 아래 코드로 클래스의 메소드에 도달 할 수 없습니다. PHP에서

class Soup { 
    private static $_obj; 

    public function __construct(){} 

    public static function getObj($objName){ 
     if(isset(self::$_obj)) { 
      return self::$_obj; 
     } else { 
      self::$_obj = new $objName; 
      return self::$_obj; 
     } 
    } 
} 

class Foo extends Obj { 

} 

class Obj {  
    public function test() {} 
} 
// This is what we are trying to reach; 
Soup::getObj('Foo')->test(); 

이 아무 문제가 없지만, 이클립스 PDT 또는 젠드 스튜디오에서, 자동 완성 완료되지 않습니다 -> 테스트() 부분. Eclipse PDT를 대신하여 이에 대한 해결책이 있습니까? 아니면 해당 클래스를 작성하는 다른 방법이 있습니까?

+0

필자는 Eclipse/Zend에서 항상이 문제를 겪고 있습니다 ... 자동 완성 모듈이 도달 할 수있는 복잡성이 있지만 그 이상은 없습니다. –

+4

Eclipse는 모르지만 NetBeans에서는 @return을 사용하여 PHPdoc 주석을 추가합니다. – Mchl

+0

어떤 IDE에 도움이 필요합니까? Eclipse PDT 또는 Zend Studio? – rxgx

답변

1

당신은 할 수 없으며 IDE 문제는 아닙니다.

(자바와 달리) 당신은 함수의 반환 유형을 모른다. 그래서 PHP는 무엇이 Soup:getObj('Foo')이 반환 될지 알기가 불가능합니다 ... 어쩌면 객체, 어쩌면 배열 또는 무엇이든 반환하지 않을 수도 있습니다.

Netbeans에서 함수에 설명서를 추가하여 함수 푸 이것이

2

모든 (대부분)의 IDE가 고급 자동 완성 기능에 대한 docblocks을 사용, 그것은 젠드 스튜디오와 이클립스와 동일합니다 도움

희망 객체를 반환합니다. 좋은 docblock은 코드를 잘 문서화하고 phpdoc 가능하게 만들뿐만 아니라 더 나은 코드 지원을 제공 할 것입니다!