2010-09-28 24 views
12

Làm cách nào để thiết lập hoàn thành mã để hoạt động trên Zend Studio (hoặc bất kỳ IDE dựa trên Eclipse nào) khi làm việc với một lớp có biến thành viên riêng tư hoặc được bảo vệ KHÔNG một loạt các Getter's OR thiết lập các thành viên vars là công khai.Hoàn thành mã cho biến thành viên riêng tư/được bảo vệ khi sử dụng phép thuật __get()

Ví dụ:

class Dog { 

    protected $bark = 'woof!'; 

    public function __get($key) { 
     if (isset($this->$key)) { 
      return $this->$key; 
     } 
    } 

} 

$Dog = new Dog(); 
echo $Dog->bark; // <-- I want the IDE to "know" that bark is a property of Dog. 

Trả lời

24

Code Completion Magic phương pháp có thể đạt được bằng cách sử dụng các @property@method chú thích trong DocBlock của lớp (không phải trong phương pháp Documents).

/** 
* @property string bark 
*/ 
class Dog { 
    /* ... */ 
} 

$Dog = new Dog(); 
echo $Dog-> // will autocomplete now 

Lưu ý rằng không có sự tương quan giữa mã thực tế và chú thích. Zend Studio sẽ hiển thị mọi thứ bạn đặt cho @property, bất kể thuộc tính này hiện có. Nó cũng sẽ không kiểm tra nếu có thực sự là một phương pháp ma thuật có sẵn.

Code Completion in Zend Studio with @property annotation

+0

Điều đó có hoạt động với Eclipse không? –

+1

@ Điều đó cũng nên làm việc với Eclipse. Nhưng đừng làm móng tôi. – Gordon

+2

Chỉ cần xác nhận điều này cũng hoạt động trên Netbeans 7.2 – qrazi

Các vấn đề liên quan