2015-08-25 15 views
6

PHP Mã SnifferPhpStorm là ném một lỗi cho phpcs

phpcs: Can not correctly run the tool with parameters: 
C:\Users\sa\AppData\Local\Temp\___0.tmp\press_home.module --encoding=utf-8 
Possible tool process hangup after 5 sec. 
Exclude press_home.module from PHP Code Sniffer analysis. 

PhpStorm ném nhắn này thường xuyên. Bất kỳ ý tưởng tại sao PhpStorm hiển thị lỗi này?

+1

Vô cùng có khả năng bởi vì PHP thực thi được sử dụng để thực hiện 'phpcs' đã Xdebug kích hoạt. 2 giải pháp có thể: 1) bằng cách nào đó đảm bảo rằng nó không kích hoạt xdebug (nghĩa là có một vài cài đặt php trong đó mặc định không có xdebug) 2) Tăng thời gian chờ trong cài đặt PhpStorm – LazyOne

+0

@LazyOne cảm ơn nhận xét hữu ích của bạn. Tôi đang đi với giải pháp 1. Đã tắt xdebug. và bây giờ lỗi không đến. –

Trả lời

5

Bất kỳ ý tưởng nào tại sao PhpStorm hiển thị lỗi này?

Rất có thể vì thực thi PHP được sử dụng để thực thi phpcs đã bật xdebug - quá trình thực thi mất nhiều thời gian hơn.

Hai giải pháp khả thi:

  1. Hãy chắc chắn rằng PHP thực thi được sử dụng để thực hiện phpcs không có kích hoạt Xdebug. Ví dụ. bạn có thể vô hiệu hóa xdebug hoàn toàn .. hoặc có nhiều cài đặt PHP trên máy tính của bạn, nơi mặc định một (sẽ được sử dụng nếu bạn nhập php trong thiết bị đầu cuối) không có xdebug.

  2. Thử tăng thời gian chờ trong cài đặt của PhpStorm (Settings/Preferences | Languages & Frameworks | PHP | Code Sniffer). Trên một số hệ thống/thiết lập nhất định, thậm chí tăng thời gian chờ lên 20 giây (rất nhiều) có thể vẫn không thể giải quyết được sự cố.

Giải pháp được mô tả trong # 1 được ưa thích hơn từ điểm thực thi và đáng tin cậy hơn (nhưng khó thực hiện hơn, đặc biệt nếu bạn thực sự cần xdebug cục bộ).

+0

Tôi gặp vấn đề tương tự trên Windows 10.XDebug bị vô hiệu hóa và thời gian chờ được đặt trên giá trị tối đa (30 giây) - nhưng giải pháp này không hoạt động. – ZaquPL

+0

@ZaquPL Nhưng nó làm việc cho tác giả câu hỏi .. và những người khác upvoted. Nếu nó không làm việc cho bạn (** 2 tuổi ** trả lời) thì điều đó không có nghĩa là nó cũng không hoạt động với người khác - bạn có thể có tình huống khác ... hoặc một số vấn đề mới trong PhpStorm thực. Tại thời điểm viết câu trả lời, các giải pháp được đề xuất có thể giải quyết vấn đề. – LazyOne

0

Bão không nhận được phản hồi từ sniffer hoặc sniffer treo cứng. Hãy thử chạy nó từ dòng lệnh với cùng một params và xem những gì sẽ xảy ra, có thể bạn chỉ cần một bản cập nhật hoặc có thể một số params đang làm cho nó sụp đổ. Điều này nên đi với thẻ JAVA như Storm được xây dựng trên JAVA. Có lẽ các nhà phát triển JAVA sẽ biết nhiều hơn về cách xử lý lệnh thses. Trong mọi trường hợp, điều này không liên quan gì đến php.

0

Tăng thời gian chờ chỉ nên được áp dụng khi bạn có lý do chính đáng (dữ liệu phức tạp, kết nối từ xa, v.v.), nhưng hầu hết các kịch bản được phân tích nhanh chóng.

Giải pháp tiềm năng cho vấn đề của bạn: Bạn không cung cấp chuẩn mã làm tham số, vì vậy hãy đảm bảo rằng PHPStorm đang gọi phpcs với tiêu chuẩn mã hóa phù hợp, do đó, bỏ tham số --standard có thể gây ra sự cố.

Trong PHPStorm trong Cài đặt-> Editor-> Thanh tra, mở rộng PHP và đi tới Xác thực Sniffer mã PHP. Ở đó bạn sẽ tìm thấy một danh sách thả xuống được chọn có nhãn "Mã hóa tiêu chuẩn".

Tôi sẽ không khuyên bạn sử dụng MySource mặc định làm giá trị nếu bạn không có lý do chính đáng, thay vào đó hãy chọn PSR2, chẳng hạn.

Lệnh sau đây sẽ được phát hành bởi PHPStorm, trong trường hợp này:

phpcs.bat index.php --standard=PSR2 --encoding=utf-8 --report=xml 
Các vấn đề liên quan