Hướng dẫn can you debug php in visual studio? - bạn có thể gỡ lỗi php trong studio trực quan không?

Hướng dẫn can you debug php in visual studio? - bạn có thể gỡ lỗi php trong studio trực quan không?

Việc gỡ lỗi mã PHP trong mã VS cho phép kiểm tra chương trình PHP, kiểm tra các biến thực tế, dấu vết ngăn xếp, ngoại lệ, phá vỡ và bước qua mã, gỡ lỗi các bài kiểm tra PHPUNIT, v.v.

Yêu cầu

Để gỡ lỗi chương trình PHP, bạn cần PHP (được cài đặt cục bộ hoặc trên máy chủ của bạn) cùng với tiện ích mở rộng XDebug.

  • PHP> = 5.6
  • Mở rộng xdebug. Thực hiện theo các bước trên cài đặt xdebug.org.

Cài đặt PHP cục bộ

Trong trường hợp có nhiều cài đặt PHP hơn trên hệ thống, xem chọn phiên bản PHP và chọn đúng.

Để xác minh PHP và XDebug của bạn được cài đặt chính xác:

  • Mở tệp .php trong mã vs
  • Mở chế độ xem OUTPUT, tab PHP.

Hướng dẫn can you debug php in visual studio? - bạn có thể gỡ lỗi php trong studio trực quan không?

Nếu PHP với XDebug được cài đặt chính xác, bạn sẽ thấy

Found PHP, version x.y.z, Xdebug: x.y.z.

php.ini Cấu hình

XDebug cần được đặt trong tệp php.ini tương ứng với cài đặt PHP của bạn.

  • Trên Windows, nó nằm bên cạnh
    ; Xdebug 3
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.mode = debug
    xdebug.client_host = 127.0.0.1
    xdebug.client_port = 9003
    xdebug.start_with_request = trigger
    1 của bạn.
    it is located next to your
    ; Xdebug 3
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.mode = debug
    xdebug.client_host = 127.0.0.1
    xdebug.client_port = 9003
    xdebug.start_with_request = trigger
    1.
  • Trên Linux/Mac, thường có một tệp
    ; Xdebug 3
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.mode = debug
    xdebug.client_host = 127.0.0.1
    xdebug.client_port = 9003
    xdebug.start_with_request = trigger
    2 riêng biệt (thường là một cái gì đó như
    ; Xdebug 3
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.mode = debug
    xdebug.client_host = 127.0.0.1
    xdebug.client_port = 9003
    xdebug.start_with_request = trigger
    3).Linux/Mac, there is usually a separate
    ; Xdebug 3
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.mode = debug
    xdebug.client_host = 127.0.0.1
    xdebug.client_port = 9003
    xdebug.start_with_request = trigger
    2 file (usually something like
    ; Xdebug 3
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.mode = debug
    xdebug.client_host = 127.0.0.1
    xdebug.client_port = 9003
    xdebug.start_with_request = trigger
    3).

Chỉnh sửa tệp

; Xdebug 3
zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
xdebug.mode = debug
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003
xdebug.start_with_request = trigger
4 và đảm bảo có các chỉ thị sau (lưu ý, các chỉ thị khác nhau đối với các phiên bản XDebug
; Xdebug 3
zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
xdebug.mode = debug
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003
xdebug.start_with_request = trigger
5 và
; Xdebug 3
zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
xdebug.mode = debug
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003
xdebug.start_with_request = trigger
6):

; Xdebug 3
zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
xdebug.mode = debug
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003
xdebug.start_with_request = trigger
; Xdebug 2
zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = 127.0.0.1
xdebug.remote_port = 9000
xdebug.remote_mode = req

Cài đặt máy chủ PHP

Điều này áp dụng cho tình huống khi PHP không chạy trên hệ thống cục bộ của bạn nhưng nó nằm trên đám mây, máy chủ web, Docker, XAMPP, v.v.Cloud, Web Host, Docker, Xampp, etc.

Trong trường hợp

; Xdebug 3
zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
xdebug.mode = debug
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003
xdebug.start_with_request = trigger
7 không chạy trên hệ thống cục bộ của bạn, hãy tham khảo ý kiến ​​cài đặt Php+XDebug với máy chủ máy chủ cụ thể.

Sau đó, bạn có thể tận dụng proxy DBGP để cho phép nhiều người dùng gỡ lỗi cùng một trang web một cách an toàn.

Ra mắt gỡ lỗi trong VSCODE

Khởi chạy gỡ lỗi trong Code Visual Studio để chạy chương trình và gỡ lỗi hoặc nghe các kết nối XDebug và gỡ lỗi đến. Gỡ lỗi PHP có thể được bắt đầu theo nhiều cách, có hoặc không có không gian làm việc mã VS, có hoặc không có cấu hình

; Xdebug 3
zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
xdebug.mode = debug
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003
xdebug.start_with_request = trigger
8.

Với ; Xdebug 3 zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so" xdebug.mode = debug xdebug.client_host = 127.0.0.1 xdebug.client_port = 9003 xdebug.start_with_request = trigger8

Tệp

; Xdebug 2
zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = 127.0.0.1
xdebug.remote_port = 9000
xdebug.remote_mode = req
0 là một tệp cấu hình trong thư mục mã vs hoặc không gian làm việc của bạn.

  1. Mở thư mục hoặc mở không gian làm việc trong mã vs. Điều này cho phép chỉ định cấu hình khởi chạy gỡ lỗi chi tiết hơn. or Open Workspace in VS Code. This allows for specifying more detailed debug launch configurations.
  2. Điều hướng đến chế độ xem
    ; Xdebug 2
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.remote_enable = 1
    xdebug.remote_handler = dbgp
    xdebug.remote_host = 127.0.0.1
    xdebug.remote_port = 9000
    xdebug.remote_mode = req
    1 và nhấp vào
    ; Xdebug 2
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.remote_enable = 1
    xdebug.remote_handler = dbgp
    xdebug.remote_host = 127.0.0.1
    xdebug.remote_port = 9000
    xdebug.remote_mode = req
    2 hoặc thiết bị cấu hình:
    Hướng dẫn can you debug php in visual studio? - bạn có thể gỡ lỗi php trong studio trực quan không?
  3. Xem Launch.json để khởi tạo và mô tả hồ sơ khởi chạy PHP.

Không ; Xdebug 3 zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so" xdebug.mode = debug xdebug.client_host = 127.0.0.1 xdebug.client_port = 9003 xdebug.start_with_request = trigger8, chỉ cần gỡ lỗi

Gỡ lỗi có thể được bắt đầu mà không cần cấu hình. Điều này được khuyến nghị nếu bạn chỉ cần gắn vào một máy chủ web hiện có (với XDebug được cấu hình) hoặc để nhanh chóng chạy và gỡ lỗi một tập lệnh PHP.

  1. Mở tệp .________ 17 trong mã VS (
    ; Xdebug 2
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.remote_enable = 1
    xdebug.remote_handler = dbgp
    xdebug.remote_host = 127.0.0.1
    xdebug.remote_port = 9000
    xdebug.remote_mode = req
    5).
    in VS Code (
    ; Xdebug 2
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.remote_enable = 1
    xdebug.remote_handler = dbgp
    xdebug.remote_host = 127.0.0.1
    xdebug.remote_port = 9000
    xdebug.remote_mode = req
    5).
  2. Nhấn
    ; Xdebug 2
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.remote_enable = 1
    xdebug.remote_handler = dbgp
    xdebug.remote_host = 127.0.0.1
    xdebug.remote_port = 9000
    xdebug.remote_mode = req
    6 hoặc bảng lệnh mở (
    ; Xdebug 2
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.remote_enable = 1
    xdebug.remote_handler = dbgp
    xdebug.remote_host = 127.0.0.1
    xdebug.remote_port = 9000
    xdebug.remote_mode = req
    7) và chọn một trong những điều sau:
    ; Xdebug 2
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.remote_enable = 1
    xdebug.remote_handler = dbgp
    xdebug.remote_host = 127.0.0.1
    xdebug.remote_port = 9000
    xdebug.remote_mode = req
    6
    or Open Command Palette (
    ; Xdebug 2
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.remote_enable = 1
    xdebug.remote_handler = dbgp
    xdebug.remote_host = 127.0.0.1
    xdebug.remote_port = 9000
    xdebug.remote_mode = req
    7) and choose one of the following:
    Hướng dẫn can you debug php in visual studio? - bạn có thể gỡ lỗi php trong studio trực quan không?
  • ; Xdebug 2
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.remote_enable = 1
    xdebug.remote_handler = dbgp
    xdebug.remote_host = 127.0.0.1
    xdebug.remote_port = 9000
    xdebug.remote_mode = req
    8 bắt đầu gỡ lỗi và chờ kết nối XDebug đến.
  • ; Xdebug 2
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.remote_enable = 1
    xdebug.remote_handler = dbgp
    xdebug.remote_host = 127.0.0.1
    xdebug.remote_port = 9000
    xdebug.remote_mode = req
    9 chạy và gỡ lỗi tài liệu PHP hiện đã mở dưới dạng chương trình PHP điều khiển.
  • php --version
    0 Bắt đầu máy chủ phát triển PHP trong thư mục đã mở của bạn, kiểm tra các khả năng gỡ lỗi và bắt đầu nghe các kết nối XDebug.

Đặc trưng

Các tính năng gỡ lỗi như sau:

  • Bước theo dòng, bước vào, bước ra.
  • Đặt các điểm dừng, điểm dừng có điều kiện, phá vỡ số lần truy cập.
  • Ghi nhật ký điểm đột phá vào 'Bảng điều khiển gỡ lỗi'.
  • Phá vỡ các trường hợp ngoại lệ, cảnh báo và lỗi.
  • Chỉ định các tệp không phải người dùng (ngoại lệ sẽ không phá vỡ gỡ lỗi, bước qua).
  • Mẹo công cụ xem.
  • Liệt kê người dân địa phương và superglobals.
  • Chỉnh sửa biến hoặc giá trị thuộc tính, xử lý các giá trị chuỗi dài một cách hiệu quả.
  • Mảng dài xem hiệu quả.
  • Debug Watch mở rộng các đối tượng và mảng.
  • Đánh giá mã trong 'Bảng điều khiển gỡ lỗi'.
  • Gỡ lỗi hồ sơ ra mắt.
  • Máy chủ phát triển web tích hợp.
  • Gỡ lỗi các trường hợp thử nghiệm 'đơn vị PHP'.

Gỡ lỗi trang trí

Khi bước qua mã, trình chỉnh sửa sẽ hiển thị các giá trị của các biến và biểu thức tương ứng với câu lệnh hiện tại. Các giá trị cũng được hiển thị cho các phạm vi kèm theo như các biến điều khiển vòng, biểu thức chuyển đổi và tham số chức năng.

Tính năng này có thể được bật hoặc tắt bằng cách sử dụng Cài đặt mã VS

php --version
1.

Hướng dẫn can you debug php in visual studio? - bạn có thể gỡ lỗi php trong studio trực quan không?

Bắt đầu gỡ lỗi và dừng lại khi nhập

Mở bảng màu và chạy

php --version
2 (còn gọi là bước vào). Lệnh khởi chạy gỡ lỗi và phá vỡ câu lệnh đầu tiên.command palette and run
php --version
2 (aka Step Into). The command launches debugging and breaks on the first statement.

Xử lý sự cố

Đây là những bước sẽ giúp chẩn đoán và giải quyết các vấn đề phổ biến với việc gỡ lỗi PHP:

  • Chạy lệnh sau sẽ hiển thị không có cảnh báo và thông báo XDebug:no warnings, and an Xdebug notice:

    php --version
    PHP 8.0.3 (cli) Copyright (c) The PHP Group
    Zend Engine v4.0.3, Copyright (c) Zend Technologies
      with Xdebug v3.0.4, Copyright (c) 2002-2021, by Derick Rethans
  • Số cổng được chỉ định trong cấu hình XDebug

    ; Xdebug 3
    zend_extension = "" ; "...\xdebug.dll" or ".../xdebug.so"
    xdebug.mode = debug
    xdebug.client_host = 127.0.0.1
    xdebug.client_port = 9003
    xdebug.start_with_request = trigger
    4 phải là
    php --version
    4 hoặc
    php --version
    5 hoặc nó phải khớp với
    php --version
    6 được chỉ định trong hồ sơ khởi chạy.

  • Tường lửa phải được thiết lập đúng để cho phép liên lạc thông qua cổng XDebug.

  • Nối tham số truy vấn sau khi mở trang web PHP gỡ lỗi:

    ?XDEBUG_SESSION_START=1

    Ví dụ:

    php --version
    7

  • Trong trường hợp mã VS đứng sau proxy, hãy xem https://code.visualstudio.com/docs/setup/network để cài đặt bổ sung.

Xem thêm

  • Xdebug.org
  • Cài đặt XDebug trên Mac
  • Khởi chạy cấu hình
  • Cài đặt mạng mã VS (Proxy)

Làm cách nào để gỡ lỗi mã PHP trong Visual Studio?

Có một tiện ích mở rộng Php VSCode phổ biến được gọi là gỡ lỗi PHP. Bạn có thể tìm thấy nó trong cửa sổ mở rộng và cài đặt nó. Sau khi cài đặt, bạn phải tải lại cửa sổ VSCode. Bây giờ, một lần nữa chạy phpinfo (); Phương thức trong bất kỳ tệp PHP nào để kiểm tra xem XDebug có được bật hay không.. You can find it in the extension window and install it. After installation, you must reload the VSCode window. Now, again run phpinfo(); method in any PHP file to check if Xdebug is enabled or not.

Visual Studio có thể được sử dụng cho PHP không?

Visual Studio cung cấp các biên tập viên HTML, CSS, JavaScript và JSON mạnh mẽ.Chạm vào sức mạnh của ít hơn và SASS, sử dụng PHP, Python hoặc C# với ASP.NET.Tất cả các ngôn ngữ phổ biến được hỗ trợ và bạn có thể di chuyển giữa các ngôn ngữ và loại dự án một cách dễ dàng.use PHP, Python, or C# with ASP.NET. All the popular languages are supported and you can move between languages and project types with ease.

Có một trình gỡ lỗi PHP?

PHP được vận chuyển với trình gỡ lỗi tương tác PHPDBG.Debuggers bên ngoài cũng có thể được sử dụng.»Zend IDE bao gồm một trình gỡ lỗi, và cũng có một số phần mở rộng trình gỡ lỗi miễn phí như DBG tại» http://www.php-debugger.com/dbg/, »trình gỡ lỗi PHP nâng cao (APD) hoặc» XDebug.. External debuggers can also be used. The » Zend IDE includes a debugger, and there are also some free debugger extensions like DBG at » http://www.php-debugger.com/dbg/, the » Advanced PHP Debugger (APD) or » Xdebug.

Tôi có thể mở dự án PHP trong Visual Studio không?

Trong Tệp / Mới / Dự án, chọn Dự án PHP từ mẫu dự án mã hiện tại.Trình hướng dẫn sẽ hướng dẫn bạn trong quá trình tạo dự án ở vị trí được chỉ định.. The wizard will guide you through the process of creating the project in the specified location.