2013-09-25 39 views
5

Giả sử tôi có một lớpLàm thế nào để bình luận lớp để hoàn thành mã trong phpstorm

class Class1 
{ 
    public function method1(){ 
     return "hello world"; 
    } 

} 

và tôi có một lớp có sử dụng điều này trong một lớp

class Class2 
{ 
    /** @var $firstClass Class1 */ 
    private $firstClass; 

    public function __construct($firstClass) 
    { 
      $this->firstClass = $firstClass; 

    } 

    public function method2() 
    { 
      return $this->firstClass-> "I want code completion to work here" 
    } 
} 

Làm thế nào để hoàn thành mã để làm việc bằng PHPDoc. Tôi đã tìm kiếm phpdoc cho phạm vi, khai báo, tất cả các loại công cụ. Tôi không thể tìm ra các điều khoản hoặc vị trí của dòng chú thích cho phpdoc để chọn nó.

Tôi đang sử dụng phpstorm. Cứu giúp!

+1

Ví dụ của bạn hoạt động tốt (được kiểm tra trong cả bản dựng EAP v6.0.3 và v7). Có thể mã thực sự của bạn khác với ví dụ. BTW - không cần tên biến khi viết nhận xét PHPDoc cho biến lớp/trường (vì chú thích PHPDoc ** phải ** được đặt ngay trước trường đó), điều này là đủ: '/ ** @var Class1 */private $ firstClass; ' – LazyOne

+0

Tôi đã thay thế bằng cách thêm tên biến trong nhận xét PHPDoc theo cách thủ công, nếu không tôi không nhận được tự động hoàn thành. Ví dụ như thế này (không thêm '$ newUser', tự động hoàn thành không hoạt động). '/ ** @var $ newUser \ Người mẫu \ Người dùng * /' – MDT

Trả lời

10

Kiểm tra không gian tên lớp của bạn.

Nếu lớp học có không gian tên, hãy đảm bảo bạn xác định đúng chúng trong nhận xét hoặc bằng bí danh.
Comments dụ:

... 
    /** @var \vendor\namespace\Class1 */ 
    private $firstClass; 
... 

Bí danh ví dụ:

use \vendor\namespace\Class1; 
... 
    /** @var Class1 */ 
    private $firstClass; 
... 


Kiểm tra thư mục dự án định nghĩa.

Nếu thư mục lớp học của bạn không được xác định trong cài đặt dự án, PHPStorm không thể lập chỉ mục các lớp đó. Trong trường hợp này, mã hoàn thành sẽ không hoạt động. Cách thực hiện set up project directories in PHPStorm.


Xóa bộ nhớ cache PHPStorm.

Đôi khi bộ nhớ cache PHPStorm không hợp lệ. Bởi vì điều này, codecompletion có thể không hoạt động đúng. Official how to cache cleanup.

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