Cấu hình và debug với PHPStorm

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.