2016-09-29 3 views
1

객체의 속성 클래스를 나타낼 수 있습니까 (힌팅 목적을 위해)? 코드의 최종 생성물은 예상대로 작동하지만 형식 힌팅은 작동하지 않습니다. $this 개체의 속성을 모두 내가 본객체의 속성에 대한 PHPDoc

/* @var $this->view \app\components\View */ 
    $this->view->title = 'Title here'; 

@var $this 또는 유사한 참조했지만, 결코 예를 들어, 다음은 내가 달성하기 위해 노력하지 오전하지만이 작동하지 않습니다 보여줍니다. 이것이 가능하다면, 나는 무엇을 놓치고 있습니까?

답변

2

예 - 당신이 클래스의 속성을 선언 어디 당신이하는 PHPDoc 주석을 적용해야합니다

class Foo 
{ 
    /* @var \app\components\View $view*/ 
    public $view; 

    public function __construct() 
    { 
      $this->view->title = 'Title here'; 
    } 
} 
+0

를 선언하지 않고 클래스에 주석을 달 수있는 방법이 있나요? 클래스 Foo가 클래스 바를 확장 할 때 (예 : 속성이 선언 된 곳)? 뷰 클래스의 원래 선언을 찾기 위해 몇 가지 클래스로 돌아 가야한다. – justinvoelker

+0

나는 그렇게 할 수있는 방법을 모르고있다. 귀하의 IDE가 당신에게 맞는 것을 제공한다면 나는 수퍼 클래스의 속성을 다시 선언하기로 마음 먹었습니다. – HPierce

+0

수퍼 클래스가 쉽게 제어 할 수 없으므로 쉽게 사용할 수 없습니다. 하지만 작동중인 것은 클래스의 속성을 다시 선언 한 다음 사용되는 곳의 내부에서 값의 부모 구현과 동일하게 설정합니다. 그래서 수업은 비어있는 채로 시작하지만, 시간이 지남에 따라 그것이되어야 할 곳으로 돌아갑니다. 도와 주셔서 감사합니다! – justinvoelker

관련 문제