Làm cách nào để định cấu hình Xdebug trong PHP?

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

Trong công thức này

  1. Xdebug là gì và tại sao lại sử dụng nó?
  2. Các công cụ được sử dụng trong công thức này
  3. Đang cài đặt Xdebug
  4. Cài đặt tiện ích Mã VS
  5. Gỡ lỗi bộ điều khiển Kirby đầu tiên của chúng tôi
  6. Lỗi gỡ lỗi
  7. Tab ngăn xếp cuộc gọi
  8. Tab Điểm ngắt
  9. Thanh công cụ gỡ lỗi
  10. MAMP Pro
  11. Tài nguyên

Xdebug là gì và tại sao lại sử dụng nó?

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

Các công cụ được sử dụng trong công thức này

  • 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

Cài đặt Xdebug

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

Kiểm tra xem Xdebug đã được cài đặt chưa

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 đặt 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

Hướng dẫn cài đặt

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

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 đườ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 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

bạn nhận được 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 đầu ra 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 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
03 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)

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
7

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 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
05 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

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

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

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

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 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
07 được đề xuất bởi plugin mà chúng tôi sẽ cài đặt trong bước tiếp theo

Cài đặt tiện ích mở rộng Mã VS

Để 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

Gỡ lỗi bộ điều khiển Kirby đầu tiên của chúng tôi

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 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
09 trong Thanh hoạt động mã VS ở bên trái Mã VS hoặc nhấn CMD-SHIFT-D (Mac)/CTRL-SHIFT-D (Linux/Windows). Trong dạng xem Run, bấm vào
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
70 rồi chọn PHP từ menu thả xuống môi trường

Làm cách nào để định cấu hình Xdebug trong PHP?

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
71 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 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
03. 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
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
9

Để biết chi tiết về 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
71 có sẵn, hãy xem tài liệu Gỡ lỗi PHP

Thêm điểm dừng

Để 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

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
74 và đặt ba điểm dừng trê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
75 và hai định nghĩa biế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
76. Một chấm đỏ sẽ đánh dấu từng điểm dừng

Làm cách nào để định cấu hình Xdebug trong PHP?

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ắt đầu nghe trình gỡ lỗi

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

Làm cách nào để định cấu hình Xdebug trong PHP?

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

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
77 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

Làm cách nào để định cấu hình Xdebug trong PHP?

Trong bước đầu tiên này, biế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
76 và
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
75 vẫn chưa được khởi tạo

Làm cách nào để định cấu hình Xdebug trong PHP?

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

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
10 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
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
75 không còn được khởi tạo nữa mà thay đổi thành một chuỗi rỗng

Làm cách nào để định cấu hình Xdebug trong PHP?

Nếu chúng ta sử dụng lạ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
10, bây giờ chúng ta sẽ thấy biế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
76 đã thay đổi như thế nào

Làm cách nào để định cấu hình Xdebug trong PHP?

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

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
14, 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

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
15. 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

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
10 đầu tiên, biế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
75 hiện chứa chuỗ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
18. Bước lại và biế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
76 sẽ vẫn giống như trước

Làm cách nào để định cấu hình Xdebug trong PHP?

Khi bước thứ ba kết thúc, chúng ta sẽ đến câu lệnh if và một bước nữa, chúng ta sẽ nhận thấy rằng biế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
76 hiện đã thay đổi. Mảng
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
21 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

Làm cách nào để định cấu hình Xdebug trong PHP?

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

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
22 trên thanh công cụ gỡ lỗi và xóa tất cả các điểm dừng

Gỡ lỗi

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

    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
    23, hãy xóa hoặc nhận xét hàm
    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
    24

  • Thay đổ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
    25 như thế này

    php -v
    3

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

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

php -v
6

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

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
77 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

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
10 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

php -v
9

Đ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 để chúng ta có thể gọi phương thứ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
27

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

Gọi ngăn xếp tab

Trong tab

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
92, 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 thi cho đến điểm ngắt hiện tại hoặc điểm thực thi hiện tại

Làm cách nào để định cấu hình Xdebug trong PHP?

tab điểm dừng

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

Làm cách nào để định cấu hình Xdebug trong PHP?

Thanh công cụ gỡ lỗi

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ã

Làm cách nào để định cấu hình Xdebug trong PHP?
  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

MAMP Pro

Nếu bạn sử dụng MAMP Pro, sự khác biệt duy nhất đối 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

Tài nguyên

  • 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ả

  • Làm cách nào để định cấu hình Xdebug trong PHP?

    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 →

Cấu hình Xdebug trong PHP INI như thế nào?

Cấu hình PHP # .
Tìm ra tệp ini PHP nào để sửa đổi. Chạy tập lệnh sau để tìm tất cả các tệp cấu hình mà PHP đã tải. .
Thêm dòng sau vào tệp ini PHP này. zend_extension=xdebug
Khởi động lại máy chủ web của bạn hoặc PHP-FPM, tùy thuộc vào những gì bạn đang sử dụng
Xác minh rằng Xdebug hiện đã được tải

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

Khi Xdebug đang chạy, nó sẽ gọi lại IDE của bạn (như PhpStorm hoặc VS Code) từ máy chủ nơi nó đang chạy. IDE của bạn sẽ ngồi và lắng nghe kết nối đó trên một cổng cụ thể (thường là cổng 9000 hoặc 9003)