Cấu hình và debug với PHPStorm
Bài đăng này đã không được cập nhật trong 3 năm
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 ...
ở 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: https://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 đỏ)
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ố XDEBUG_SESSION_START=PHPSTORM
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 export XDEBUG_CONFIG="idekey=phpstormcli"
trong terminal với phpstormcli
là ide key đã đặt ở trên.
Tiếp theo thì bật debug listening, click break point, chạy php artisan queue:work
.
All rights reserved