Đã đăng vào thg 8 1, 2017 2:55 SA 2 phút đọc 2 phút đọc
Làm dev thì ai cũng quen với việc debug. Chỉ cần var_dump[]
là ta có thể biết biến đó đang chứa dữ liệu gì, chạy đến đây có sai không... Nhưng sẽ thật kinh khủng khi phải lần mò var_dump[]
rồi chạy lại code hết chỗ này đến chỗ kia. Lúc này IDE mới chứng tỏ sự khác biệt với những editor. Hãy quên đi var_dump[]
, print_r[]
, die
, với IDE bạn chỉ cần click chọn chỗ cần debug, sau đó request. Pum! toàn bộ nội dung cần debug ở từng phần, từng function sẽ hiển thị cho bạn. Bài viết này sử dụng PHPStorm để debug.
Install Xdebug
macOS
brew install php71-xdebug
ubuntu
sudo apt-get install php-xdebug
Sau đó restart server
Config php.ini
Thêm vào file php.ini
[Xdebug]
zend_extension_ts=/usr/local/opt/php71-xdebug/xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
Path /usr/local/opt/php71-xdebug/xdebug.so
tùy theo nơi đặt xdebug của bạn.
Config PHPStorm
Chọn Run > Edit Configurations... Click button +
để thêm config mới. Ở đây lấy ví dụ là PHP Web Application Click button
sudo apt-get install php-xdebug
0 ở phần Server để cấu hình server Click button +
ở dialog Servers. Thêm thông tin về server. Click OK Khi đó ta đã config xong phần server để debug. Click OK Nếu server bạn chạy https, cần chỉnh sửa phần Start URL Giờ đến phần thú vị nhất, thực hiện debug. Chọn Run > Debug [name_server] Một tab trình duyệt web sẽ hiển thị thông báo bắt đầu session debug. Không cần quan tâm, bạn cứ tắt tab đó đi. Click button debug listening, để nó chuyển sang trạng thái lắng nghe [màu xanh lá] Bây giờ nó sẽ lắng nghe và break ở bất kỳ chỗ phần code nào ta chọn làm break point [click khoảng trống bên cạnh line number] Thực hiện request để bắt debug. Sử dụng hàng button điều hướng để xem kỹ từng bước chạy của php. Xem thêm: //www.jetbrains.com/help/phpstorm/debug-tool-window.html#steptoolbar Khi không cần debug thì click button debug listening lần nữa để off debug [màu đỏ] sudo apt-get install php-xdebug
0 ở phần Server
để cấu hình server +
ở dialog Servers. Thêm thông tin về server. Click OK Debug với Postman
Với postman ta hoàn toàn có thể debug giống như trên web, chỉ cần thêm vào url bạn muốn test tham số
sudo apt-get install php-xdebug
2 Bonus: Debug với queue của Laravel
Ở trên chúng ta đã biết cách debug với web, giờ là phần nói về debug với queue của Laravel. Chọn Run > Edit Configurations... Click button +
để thêm config mới. Chọn PHP Remote Debug Chọn server, đặt tên ide key. Click OK Chọn Run > Debug [name_server] Chạy câu lệnh
sudo apt-get install php-xdebug
4 trong terminal với sudo apt-get install php-xdebug
5 là ide key đã đặt ở trên. Tiếp theo thì bật debug listening, click break point, chạy sudo apt-get install php-xdebug
6.sudo apt-get install php-xdebug
4 trong terminal với sudo apt-get install php-xdebug
5 là ide key đã đặt ở trên. Tiếp theo thì bật debug listening, click break point, chạy sudo apt-get install php-xdebug
6.All rights reserved
Đọc trên để biết chi tiết về tất cả các tính năng mới và cập nhật quan trọng, cùng với một tấn GIF!
- Php 8: Hỗ trợ cho tất cả các tính năng ngôn ngữ và thậm chí các thuộc tính tùy chỉnh nguồn mở.
- PHPSTAN và PSALM có thể phát hiện các vấn đề trực tiếp trong trình chỉnh sửa mã hoặc ở chế độ hàng loạt.
- XDebug 3 với cấu hình được sắp xếp hợp lý và cải tiến trình gỡ lỗi như đồng hồ nội tuyến và gợi ý tương tác.
Đảm bảo tất cả các cấu hình như thế này:
zend_extension = xdebug.so
xdebug.mode = Debug, phát triển
xdebug.start_with_request = Có
xdebug.client_host = localhost
xdebug.client_port = 9003
xdebug.idey = phpstorm
Sử dụng xdebug trong phpstorm
Bạn có thể sử dụng một trong những phương pháp sau:
Định cấu hình XDebug của bạn [bằng cách chỉnh sửa php.ini] để cố gắng gỡ lỗi mọi tập lệnh PHP. Tùy chọn chính:
XDebug v2: xdebug.remote_autostart = 1
Xdebug v3: xdebug.start_with_request = Có
Thêm tham số khởi động phiên XDebug vào URL thực tế [xdebug_session_start = {{key}} - //xdebug.org/docs/remote], ví dụ:?
Pass XDebug Cookie là một trong những tiêu đề [ví dụ: được đặt bởi Bookmarklet hoặc Trình duyệt mở rộng chẳng hạn].
Thanks.