PHP XDebug hoạt động như thế nào?

Các bước đầu tiên để bắt đầu gỡ lỗi với Xdebug

Trong công thức này

Trong công thức phòng ngừa và tìm kiếm lỗi cơ bản của chúng tôi, chúng tôi đã giới thiệu một số hàm như

PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
0,
PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
1 hoặc
PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
2 để giúp gỡ lỗi các biến của bạn trong PHP. Mặc dù các hàm này thường hữu ích để xem nhanh đầu ra của các biến của bạn, nhưng chúng không hữu ích để đánh giá các biến này trong thời gian chạy, phân tích dấu vết ngăn xếp hoặc đặt điểm dừng

Đây là lúc Xdebug xuất hiện, một tiện ích mở rộng PHP cung cấp khả năng gỡ lỗi và định hình, cuối cùng sẽ tăng tốc quá trình phát triển của bạn, giúp bạn viết mã tốt hơn và tạo điều kiện tái cấu trúc. Với Xdebug, bạn có thể ngắt quá trình thực thi mã tại bất kỳ thời điểm nào, thực hiện theo từng bước thực thi mã ngay từ đầu và kiểm tra tất cả các biến trong một yêu cầu

Trong công thức này, chúng tôi sẽ tập trung vào Bước gỡ lỗi với Xdebug

  • Xdebug 3
  • Visual Studio Code (VS Code) làm trình chỉnh sửa
  • Gỡ lỗi PHP Phần mở rộng mã VS
  • Bộ khởi động Kirby

Công thức này đã được thử nghiệm trên Mac OS Big Sur và Ubuntu 20. 04 với Laravel Valet và Valet Linux, tương ứng

Trong một số môi trường phát triển như MAMP Pro, Xdebug đi kèm theo gói nên bạn không cần phải cài đặt riêng. Xem phần cuối của công thức này

Trước tiên hãy kiểm tra xem Xdebug đã được cài đặt trên hệ thống của bạn chưa. Bạn có thể kiểm tra điều này bằng cách đưa câu lệnh

PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
3 vào mẫu Kirby hoặc vào một tệp riêng và tìm phần
PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
4 hoặc mở một thiết bị đầu cuối và nhập

php -v

trên dòng lệnh. Nếu Xdebug được cài đặt, lệnh này sẽ xuất ra một cái gì đó giống như

PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies

Bạn có thể tìm hướng dẫn cài đặt cho nền tảng của mình trong tài liệu chính thức của Xdebug

Ngoài ra còn có một trình hướng dẫn nơi bạn có thể nhập đầu ra của

PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
3 để nhận hướng dẫn xây dựng Xdebug từ nguồn cho môi trường của bạn

Khi Xdebug được cài đặt, chúng tôi phải thiết lập một số cài đặt cấu hình

Bước đầu tiên để định cấu hình Xdebug là tìm tệp

PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
6 cho phiên bản PHP hiện tại của bạn. Một lần nữa, ở đây, bạn có thể tìm thấy đường dẫn đến tất cả các tệp đã sử dụng qua
PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
3 hoặc qua CLI

Với

php --ini

bạn nhận được một danh sách tất cả các tệp

PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
6 được sử dụng. Đôi khi, chỉ có một tệp
PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
6, đôi khi có một tệp cho mỗi tiện ích mở rộng được tải

Với

PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
3, bạn tìm thấy thông tin ở đầu kết quả trong các trường

  • Tệp cấu hình (php. ini) Đường dẫn
  • Đã tải tệp cấu hình
  • Quét thư mục này để biết thêm. tập tin ini
  • Thêm vào. tập tin ini được phân tích cú pháp

Nếu bạn tìm thấy tệp

PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
6 cụ thể cho Xdebug, bạn sẽ làm việc với tệp này, nếu không, hãy sử dụng tệp
PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
6 chính. Nếu một thư mục được liệt kê trong "Quét thư mục này để biết thêm. ini", bạn cũng có thể tự tạo một tệp cho Xdebug để giữ cho
php --ini
3 chính của bạn sạch sẽ

Kiểm tra xem tệp bạn đang làm việc đã chứa cấu hình cho tiện ích mở rộng Xdebug chưa (trong môi trường của tôi, dòng này được thêm tự động khi tôi cài đặt Xdebug)

zend_extension=path/to/where/you/installed/xdebug.so

Nếu không, hãy thêm dòng này ngay bây giờ và khởi động lại máy chủ của bạn. Xác minh rằng Xdebug đang chạy đúng cách bằng cách kiểm tra lại với

PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
3 hoặc
php --ini
5 như đã giải thích ở trên

Bây giờ chúng tôi phải thêm một số cài đặt cấu hình khác. Thêm các cài đặt sau vào cùng một tệp

PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
6

zend_extension=path/to/where/you/installed/xdebug.so
xdebug.mode=debug
xdebug.start_with_request = yes
xdebug.client_port = 9003
xdebug.client_host = localhost
xdebug.idekey = VSCODE

Lưu ý rằng 9003 là cổng mặc định. Nếu cổng này được sử dụng bởi một dịch vụ khác trên hệ thống của bạn, hãy thay đổi nó thành cổng không sử dụng

Sau khi thêm các cài đặt này, hãy khởi động lại máy chủ web của bạn

Bạn có thể tìm thấy mô tả cho tất cả cài đặt cấu hình trong tài liệu Xdebug

Từ Xdebug 2 đến Xdebug 3, cách đặt tên của cài đặt cấu hình đã thay đổi. Các cài đặt trên là cài đặt Xdebug cho Xdebug 3. x. Nếu bạn đang chạy Xdebug 2. x, bạn phải cập nhật hoặc sử dụng Xdebug 2 tương đương. cài đặt x

zend_extension=path/to/where/you/installed/xdebug.so
xdebug.remote_enable=true
xdebug.remote_host=localhost
xdebug.remote_port = 9000
xdebug.remote_handler=dbgp
xdebug.remote_autostart = 1

Trong công thức này, chúng tôi giả định rằng mã kiểm tra của bạn và Xdebug chạy trên cùng một máy chủ

Có nhiều cách để cho Xdebug biết cách kết nối với trình gỡ lỗi từ xa như được mô tả trong tài liệu Xdebug, nhưng chúng tôi sử dụng phương pháp

php --ini
7 được đề xuất bởi plugin mà chúng tôi sẽ cài đặt trong bước tiếp theo

Để làm cho Xdebug hoạt động với Mã VS, chúng ta cần cài đặt tiện ích mở rộng Gỡ lỗi PHP của Felix Becker. Vì chúng tôi đã cài đặt Xdebug và định cấu hình cài đặt

PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
6 bắt buộc ở trên, nên không cần cấu hình thêm vào thời điểm này

Khi điều này được thực hiện, chúng tôi đã sẵn sàng để bắt đầu phiên gỡ lỗi đầu tiên của mình

Bây giờ cho phần thú vị. Tải xuống và mở Kirby Starterkit trong cửa sổ Mã VS mới

Để hiển thị Chế độ xem Chạy, nhấp vào biểu tượng

php --ini
9 trong Thanh Hoạt động Mã VS ở phía bên trái của Mã VS hoặc nhấn CMD-SHIFT-D (Mac)/CTRL-SHIFT-D (Linux/Windows). Trong dạng xem Chạy, nhấp vào
zend_extension=path/to/where/you/installed/xdebug.so
0 rồi chọn PHP từ trình đơn thả xuống môi trường

PHP XDebug hoạt động như thế nào?

Tệp

zend_extension=path/to/where/you/installed/xdebug.so
1 mới với cài đặt mặc định được tạo trong thư mục dự án

Bây giờ chúng tôi phải thay đổi cài đặt cổng cho cả hai cấu hình trong tệp này thành những gì chúng tôi đã nhập trong tệp

php --ini
3. Vì tôi bị mắc kẹt với cổng mặc định, đây là cổng 9003. Vì cấu hình thứ hai "Khởi chạy tập lệnh hiện đang mở" không phù hợp với mục đích của công thức này nên tôi đã không sao chép nó ở đây

phóng. json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9003
        }
    ]
}

Để biết chi tiết về cài đặt

zend_extension=path/to/where/you/installed/xdebug.so
1 có sẵn, hãy xem tài liệu Gỡ lỗi PHP

Để thêm điểm dừng, hãy nhấp vào rãnh bên trái của mã

Mở bộ điều khiển

zend_extension=path/to/where/you/installed/xdebug.so
4 và đặt ba điểm dừng trên
zend_extension=path/to/where/you/installed/xdebug.so
5 và hai định nghĩa biến
zend_extension=path/to/where/you/installed/xdebug.so
6. Một chấm đỏ sẽ đánh dấu từng điểm dừng

PHP XDebug hoạt động như thế nào?

Khi PHP thực thi một dòng có điểm dừng trên đó, Xdebug sẽ can thiệp và tạm dừng thực thi để bạn có được thông tin chi tiết có giá trị về tất cả những gì đang xảy ra trong quá trình thực thi

Bây giờ hãy mở lại bảng gỡ lỗi và nhấp vào hình tam giác nhỏ màu xanh lục để bắt đầu nghe Xdebug. Bạn sẽ nhận thấy thanh công cụ gỡ lỗi mới này ở đầu cửa sổ trình soạn thảo

PHP XDebug hoạt động như thế nào?

Chúng tôi sẽ giải thích các nút khác nhau trong thanh công cụ này bên dưới

Tiếp theo, mở trang

zend_extension=path/to/where/you/installed/xdebug.so
7 của Starterkit trong trình duyệt của bạn. Nếu mọi việc suôn sẻ, bạn sẽ được chuyển trở lại trình chỉnh sửa Mã VS, với bảng gỡ lỗi trống rỗng trước đây hiện chứa đầy thông tin

PHP XDebug hoạt động như thế nào?

Trong bước đầu tiên này, biến

zend_extension=path/to/where/you/installed/xdebug.so
6 và
zend_extension=path/to/where/you/installed/xdebug.so
5 vẫn chưa được khởi tạo

PHP XDebug hoạt động như thế nào?

Nếu bây giờ chúng ta nhấp vào

zend_extension=path/to/where/you/installed/xdebug.so
xdebug.mode=debug
xdebug.start_with_request = yes
xdebug.client_port = 9003
xdebug.client_host = localhost
xdebug.idekey = VSCODE
0 trên thanh công cụ gỡ lỗi (hoặc nhấn F10), chúng ta có thể thấy nội dung trong bảng gỡ lỗi thay đổi như thế nào. Bây giờ biến
zend_extension=path/to/where/you/installed/xdebug.so
5 không còn được khởi tạo nữa mà thay đổi thành một chuỗi rỗng

PHP XDebug hoạt động như thế nào?

Nếu chúng ta sử dụng lại

zend_extension=path/to/where/you/installed/xdebug.so
xdebug.mode=debug
xdebug.start_with_request = yes
xdebug.client_port = 9003
xdebug.client_host = localhost
xdebug.idekey = VSCODE
0, bây giờ chúng ta sẽ thấy biến
zend_extension=path/to/where/you/installed/xdebug.so
6 đã thay đổi như thế nào

PHP XDebug hoạt động như thế nào?

Bây giờ chúng ta có thể kiểm tra biến này một cách chi tiết. Chúng tôi biết rằng biến chứa một đối tượng kiểu

zend_extension=path/to/where/you/installed/xdebug.so
xdebug.mode=debug
xdebug.start_with_request = yes
xdebug.client_port = 9003
xdebug.client_host = localhost
xdebug.idekey = VSCODE
4, mảng dữ liệu chứa các trang con và nhiều hơn nữa

Với trình lắng nghe gỡ lỗi vẫn đang hoạt động, hãy quay lại trình duyệt và thêm một thẻ vào thanh địa chỉ, e. g

zend_extension=path/to/where/you/installed/xdebug.so
xdebug.mode=debug
xdebug.start_with_request = yes
xdebug.client_port = 9003
xdebug.client_host = localhost
xdebug.idekey = VSCODE
5. Bây giờ hãy tải lại trang trong trình duyệt và quay lại trình chỉnh sửa

Lưu ý rằng sau

zend_extension=path/to/where/you/installed/xdebug.so
xdebug.mode=debug
xdebug.start_with_request = yes
xdebug.client_port = 9003
xdebug.client_host = localhost
xdebug.idekey = VSCODE
0 đầu tiên, biến
zend_extension=path/to/where/you/installed/xdebug.so
5 hiện chứa chuỗi
zend_extension=path/to/where/you/installed/xdebug.so
xdebug.mode=debug
xdebug.start_with_request = yes
xdebug.client_port = 9003
xdebug.client_host = localhost
xdebug.idekey = VSCODE
8. Bước lại và biến
zend_extension=path/to/where/you/installed/xdebug.so
6 sẽ vẫn giống như trước đây

PHP XDebug hoạt động như thế nào?

Khi bước thứ ba kết thúc, chúng ta sẽ đạt được câu lệnh if và một bước nữa, chúng ta sẽ nhận thấy rằng biến

zend_extension=path/to/where/you/installed/xdebug.so
6 hiện đã thay đổi. Mảng
zend_extension=path/to/where/you/installed/xdebug.so
xdebug.remote_enable=true
xdebug.remote_host=localhost
xdebug.remote_port = 9000
xdebug.remote_handler=dbgp
xdebug.remote_autostart = 1
1 bên trong biến hiện chỉ có một mục duy nhất, trong khi nó có 6 mục trước khi quá trình lọc diễn ra

PHP XDebug hoạt động như thế nào?

Thoát khỏi chế độ gỡ lỗi bằng cách nhấp vào

zend_extension=path/to/where/you/installed/xdebug.so
xdebug.remote_enable=true
xdebug.remote_host=localhost
xdebug.remote_port = 9000
xdebug.remote_handler=dbgp
xdebug.remote_autostart = 1
2 trên thanh công cụ gỡ lỗi và xóa tất cả các điểm dừng

Cho đến thời điểm này, chúng tôi chưa gặp phải bất kỳ lỗi nào. Hãy thay đổi điều đó bằng cách cố ý thay đổi mã của chúng ta để làm cho mã có khả năng gặp lỗi và xem điều gì sẽ xảy ra

Chúng tôi thực hiện các thay đổi sau trong Starterkit

  • Trong

    zend_extension=path/to/where/you/installed/xdebug.so
    xdebug.remote_enable=true
    xdebug.remote_host=localhost
    xdebug.remote_port = 9000
    xdebug.remote_handler=dbgp
    xdebug.remote_autostart = 1
    3 xóa hoặc nhận xét chức năng
    zend_extension=path/to/where/you/installed/xdebug.so
    xdebug.remote_enable=true
    xdebug.remote_host=localhost
    xdebug.remote_port = 9000
    xdebug.remote_handler=dbgp
    xdebug.remote_autostart = 1
    4

  • Thay đổi

    zend_extension=path/to/where/you/installed/xdebug.so
    xdebug.remote_enable=true
    xdebug.remote_host=localhost
    xdebug.remote_port = 9000
    xdebug.remote_handler=dbgp
    xdebug.remote_autostart = 1
    5 như thế này

Chúng ta làm gì ở đây?

Bây giờ hãy đặt một điểm dừng trên dòng

cover()->toFile()->crop(320, 180) ?>

Chuyển sang chế độ gỡ lỗi lần nữa và tải lại trang

zend_extension=path/to/where/you/installed/xdebug.so
7 trong trình duyệt (không có tham số thẻ)

Nếu chúng ta bước qua điểm dừng lần đầu tiên, tất cả đều ổn. Bây giờ hãy nhấn nút

zend_extension=path/to/where/you/installed/xdebug.so
xdebug.mode=debug
xdebug.start_with_request = yes
xdebug.client_port = 9003
xdebug.client_host = localhost
xdebug.idekey = VSCODE
0 cho đến khi bạn thấy lỗi xuất hiện trong tab Biến (điều này sẽ xảy ra trong lần lặp tiếp theo của vòng lặp foreach)

Lần tới khi chúng tôi nhấn điểm ngắt, chúng tôi sẽ nhận được thông báo lỗi sau

Error
type: Error
message: "Call to a member function crop() on null"

Điều đó có nghĩa là gì?

Đây thực sự là một lỗi điển hình xảy ra khi chúng ta gọi một phương thức yêu cầu tồn tại một đối tượng của một lớp nhất định. Tuy nhiên, khi - như trong trường hợp này - trường trống hoặc tham chiếu tệp trong trường không còn tồn tại, thì không có đối tượng nào mà chúng ta có thể gọi phương thức

zend_extension=path/to/where/you/installed/xdebug.so
xdebug.remote_enable=true
xdebug.remote_host=localhost
xdebug.remote_port = 9000
xdebug.remote_handler=dbgp
xdebug.remote_autostart = 1
7

Với những bước đầu tiên này, giờ đây bạn đã thiết lập và chạy một môi trường Xdebug đang hoạt động, đồng thời có thể tự mình bắt đầu mạo hiểm hơn nữa

Tuy nhiên, trước khi kết thúc, chúng ta hãy xem sơ qua các khu vực khác trong bảng gỡ lỗi

Trong tab

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9003
        }
    ]
}
2, bạn sẽ thấy lịch sử tương tác của chuỗi các phương thức đã được thực hiện cho đến điểm dừng hiện tại hoặc điểm thực thi hiện tại

PHP XDebug hoạt động như thế nào?

Trong tab Điểm ngắt, bạn có thể đặt mức lỗi mà Xdebug sẽ ghi lại (Cảnh báo, Lỗi, v.v. ), tạm thời vô hiệu hóa hoặc xóa tất cả các điểm ngắt cùng một lúc hoặc vô hiệu hóa, xóa hoặc thêm các điểm ngắt

PHP XDebug hoạt động như thế nào?

Khi ở chế độ gỡ lỗi, bạn sẽ nhận được thanh công cụ gỡ lỗi để kiểm soát việc thực thi mã

PHP XDebug hoạt động như thế nào?
  1. Tạm ngừng. Tạm dừng thực thi (không khả dụng trong quá trình gỡ lỗi)
  2. Tiếp tục. Tiếp tục với việc thực thi PHP (rời khỏi chế độ gỡ lỗi)
  3. Bước qua. Thực thi tập lệnh và di chuyển đến dòng tiếp theo của tệp
  4. Bước vào. Nếu dòng tiếp theo có một hoặc nhiều chức năng, hãy chuyển trình gỡ lỗi vào các chức năng đó để thực hiện
  5. Bước ra khỏi. Di chuyển trình gỡ lỗi ra khỏi chức năng hiện tại trở lại chức năng đã gọi nó
  6. Khởi động lại. Khởi động lại gỡ lỗi
  7. Dừng lại. Dừng gỡ lỗi

Nếu bạn sử dụng MAMP Pro, điểm khác biệt duy nhất so với các bước trên là bạn bật Xdebug trong Cài đặt PHP, sau đó thêm cài đặt cấu hình trong tệp

PHP 8.0.0 (cli) (built: Nov 30 2020 13:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
    with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
    with Zend OPcache v8.0.0, Copyright (c), by Zend Technologies
6 cho phiên bản PHP đã chọn, bạn cũng có thể truy cập phiên bản này thông qua cài đặt

Trong công thức này, chúng tôi không thể bao gồm tất cả các hệ điều hành, môi trường phát triển hoặc IDE. Vui lòng sử dụng công cụ tìm kiếm để tìm các bài viết cập nhật, có liên quan cho thiết lập cụ thể của bạn hoặc đăng câu hỏi của bạn lên diễn đàn của chúng tôi

  • Gỡ lỗi mã VS
  • Định cấu hình Xdebug trong PHPStorm
  • Derick Rethans về Xdebug 3
  • XAMPP (PHP8), Xdebug 3 và PHPStorm

Tác giả

  • PHP XDebug hoạt động như thế nào?

    Sonja Broda

    Nhóm nòng cốt Kirby

    sonjabroda. com

    → Tất cả công thức nấu ăn của họ


Bạn đã tìm thấy một lỗi? . Hãy chắc chắn kiểm tra styleguide của chúng tôi →

Xdebug hoạt động như thế nào?

XDebug hoạt động qua giao thức yêu cầu máy cục bộ của bạn lắng nghe các kết nối đến từ máy chủ nơi đặt ứng dụng mà bạn đang gỡ lỗi . Bạn có thể đã sử dụng các công cụ sửa lỗi chỉ cần kết nối với máy chủ từ xa hoặc quy trình của ứng dụng của bạn.

Việc sử dụng Xdebug trong PHP là gì?

Xdebug là một tiện ích mở rộng dành cho PHP và cung cấp nhiều tính năng để cải thiện trải nghiệm phát triển PHP . Một cách để duyệt qua mã của bạn trong IDE hoặc trình chỉnh sửa của bạn trong khi tập lệnh đang thực thi. Ghi mọi lời gọi hàm, với các đối số và vị trí gọi vào đĩa.

Làm cách nào để gỡ lỗi PHP bằng Xdebug?

Tuy nhiên, điều này chỉ được đề xuất khi bạn cần kết nối với Máy chủ Web hiện có với Xdebug đã được định cấu hình hoặc muốn chạy và gỡ lỗi tập lệnh PHP một cách nhanh chóng. .
Chuyển đến xDebug
Tải xuống Xdebug 2. 4. 0rc1
Đổi tên nó thành php_xdebug. dll
Dán tệp này vào thư mục “php/ext”
Khởi động lại máy chủ của bạn

Xdebug sử dụng giao thức nào?

Giới thiệu # Xdebug tương tác với các IDE để cung cấp chức năng gỡ lỗi từng bước và do đó, bạn cũng cần định cấu hình một IDE biết cách giao tiếp với Xdebug bằng giao thức DBGp mở. This protocol is supported by nearly every PHP IDE (including Visual Studio Code and PhpStorm), and also by text-based editors.