2010-04-15 33 views
12

Sử dụng Eclipse + PDT, tôi biết rằng bạn có thể chỉ định kiểu trả về của một phương thức hoặc loại biến trong một phương thức thông qua các gợi ý kiểu.PHP: Gợi ý kiểu cho các trường bằng Eclipse PDT

Làm thế nào về các trường lớp? Tôi có thể khai báo loại trường để bật tự động hoàn thành cho biến đó không?

tôi đã cố gắng một cái gì đó trên dòng:

class MyClass { 

    protected $Field; /* @var $Field MyType */ 

    ... 

nhưng nó không hoạt động.

Có cách nào để tự động hoàn thành các trường lớp bằng Eclipse và PDT không?

cảm ơn,

Silvio

Trả lời

18

Có có! Đơn giản chỉ cần đặt các loại var trước khi tuyên bố, như thế này:

/** 
* @var Type 
*/ 
protected $Field; 

Hãy chắc chắn rằng bạn sử dụng bình phong cách javadoc (/ **, không chỉ/*) Tôi thấy điều này bằng cách chọn lĩnh vực này trong "Outline "xem và sau đó nhấp chuột phải> Nguồn> Tạo nhận xét phần tử.

+0

Điều này phù hợp với tôi, nhưng tôi không thấy phần "Nguồn> Tạo". Có một số plugin eclipse khác tôi cần cài đặt để xem không? –

+0

@Matt Connolly: Tôi đã cài đặt PDT tất cả trong một và tôi có nó, không có plugin bổ sung đặc biệt nào. Bạn thấy gì khi nhấp chuột phải vào một phần tử của khung nhìn Outline? – greg0ire

+0

Không làm việc cho tôi ở Indigo. – jsalvata

19

Và nếu bạn cần nó cho một biến địa phương không tuyên bố bạn có thể sử dụng

/* @var $varname vartype */ 

này rất hữu ích nếu bạn lặp qua một mảng của các đối tượng với một foreach.

Xin lưu ý rằng chúng ta cần nhập nó bằng một dấu hoa thị/* và tất cả trong một dòng. Tuyên bố phải được đặt trước khi sử dụng biến.

+0

Tôi không thể làm việc này để hoạt động liên tục. Nó đôi khi không hoạt động - nhưng đôi khi nó không có tác dụng. Tôi dường như không thể tìm thấy một mô hình cho nó. –

+0

Nó hoạt động rất tốt cho tôi với tên lớp của riêng tôi. Bạn đã mở nhiều hơn một dự án cùng một lúc? Điều này đôi khi gây nhầm lẫn cho nhật thực của tôi. – Martin

+0

Tính năng tuyệt vời! Mặc dù, tôi thực sự muốn biết tại sao họ chọn sử dụng phiên bản dấu sao đơn, có thứ tự tên và loại khác với '@ param' hoặc _other_' @ var' và cũng yêu cầu tên ngay cả khi bạn đặt đúng trước biến ... nhưng, có lẽ đó chỉ là để _not_ nhầm lẫn các lập trình viên PHP với quá nhiều sự nhất quán. –

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