Sử dụng XDebug để gỡ lỗi dự án PHP
XDebug là một công cụ gỡ lỗi không thể thiếu trong phát triển PHP, cung cấp các tính năng mạnh mẽ như gỡ lỗi điểm dừng, phân tích hiệu suất và kiểm tra độ phủ mã. Thông qua XDebug, nhà phát triển có thể thiết lập điểm dừng trong mã, kiểm tra giá trị biến, theo dõi stack cuộc gọi hàm, phân tích khó khăn về hiệu suất, v.v., do đó nâng cao đáng kể hiệu quả phát triển và chất lượng mã PHP.
Giới thiệu về XDebug
XDebug là một mô-đun mở rộng của PHP, cung cấp các tính năng gỡ lỗi và phân tích. Nó cho phép nhà phát triển thiết lập điểm dừng trong mã, thực hiện mã từng bước, kiểm tra giá trị biến và trạng thái chương trình, giúp nhà phát triển hiểu và gỡ lỗi mã tốt hơn.
Kích hoạt Xdebug và cấu hình môi trường gỡ lỗi
ServBay đã bao gồm Xdebug cho mỗi phiên bản PHP khi xuất xưởng.
Chú ý
Vui lòng tham khảo bài viết Cách kích hoạt mô-đun Xdebug của ServBay để nhận thông tin về cách mở mô-đun Xdebug
và cấu hình liên quan đến PHPStorm
.
Ví dụ cụ thể về gỡ lỗi
Cấu trúc dự án mẫu
Giả sử chúng ta có một dự án PHP đơn giản, cấu trúc thư mục như sau:
servbay_xdebug_app/
├── src/
│ └── Calculator.php
└── index.php
2
3
4
Nội dung tệp Calculator.php
như sau:
<?php
namespace App;
class Calculator
{
public function add($a, $b)
{
return $a + $b;
}
public function subtract($a, $b)
{
return $a - $b;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Nội dung tệp index.php
như sau:
<?php
require 'vendor/autoload.php';
use App\Calculator;
$calculator = new Calculator();
$sum = $calculator->add(5, 3);
$difference = $calculator->subtract(5, 3);
echo "Sum: " . $sum . "\n";
echo "Difference: " . $difference . "\n";
2
3
4
5
6
7
8
9
10
11
Thiết lập điểm dừng
Chúng ta muốn gỡ lỗi phương thức add
trong lớp Calculator
để xem nó hoạt động như thế nào. Mở tệp Calculator.php
trong PHPStorm và thiết lập một điểm dừng tại dòng return $a + $b;
.
Khởi động phiên gỡ lỗi
- Trong PHPStorm, nhấp vào nút
Start Listening for PHP Debug Connections
trên thanh công cụ trên cùng (biểu tượng con bọ). - Truy cập ứng dụng PHP của bạn trong trình duyệt, ví dụ:
https://servbay-xdebug-app.test/index.php
.
Quá trình gỡ lỗi
- Khi trình duyệt truy cập tệp
index.php
, XDebug sẽ tự động kết nối với PHPStorm và tạm dừng thực thi tại điểm dừng đã thiết lập. - Trong PHPStorm, bạn sẽ thấy mã tạm dừng tại dòng
return $a + $b;
trong phương thứcadd
của tệpCalculator.php
.
Kiểm tra giá trị biến
- Trong cửa sổ gỡ lỗi của PHPStorm, bạn có thể thấy dòng mã hiện tại đang được thực thi, stack cuộc gọi, giá trị biến, v.v.
- Trong bảng
Variables
, bạn có thể thấy các giá trị của biến$a
và$b
lần lượt là5
và3
.
Thực hiện từng bước
- Nhấp vào nút
Step Over
(hoặc nhấnF8
) để thực hiện mã từng bước. - Theo dõi sự thay đổi giá trị biến để đảm bảo phương thức
add
trả về kết quả đúng.
Tiếp tục thực thi
- Nhấp vào nút
Resume Program
(hoặc nhấnF9
) để tiếp tục thực thi mã. - Chương trình sẽ tiếp tục chạy cho đến khi gặp điểm dừng tiếp theo hoặc hoàn thành việc thực thi.
Xem kết quả đầu ra
- Xem kết quả đầu ra trên trình duyệt, kết quả dự kiến là:
Sum: 8 Difference: 2
1
2
Kết luận
Thông qua XDebug, nhà phát triển có thể dễ dàng thiết lập điểm dừng, kiểm tra giá trị biến, thực hiện mã từng bước trong mã PHP, do đó hiểu và gỡ lỗi mã tốt hơn. Trong phát triển thực tế, chức năng gỡ lỗi điểm dừng của XDebug có thể giúp nhà phát triển nhanh chóng xác định và giải quyết vấn đề, nâng cao hiệu quả phát triển và chất lượng mã. Như chúng ta có thể thấy từ ví dụ gỡ lỗi cụ thể ở trên, XDebug mang lại chức năng mạnh mẽ và tiện lợi trong gỡ lỗi dự án PHP.