March 4, 2013

Xdebug (part1) - Debug code PHP with Netbeans

1 – Giới thiệu

Viết một ứng dụng PHP điều gặp khó khăn nhất so với các ngôn ngữ lập trình khác đó là việc debug – dò lỗi trong source code. Nhưng điều đó không có nghĩa là không thể làm được. Xdebug là một công cụ dùng để debug source web viết bằng PHP, một việc làm rất quan trọng cho việc lập trình và tìm ra lỗi nhanh nhất. Ngoài ra, Xdebug còn là một công cụ profiler rất tốt cho website. Đây là một tính năng giúp tìm ra thắt cổ chai (bottleneck) nhằm cải thiện tốc độ website.
Trong bài viết này, tôi xin giới thiệu với mọi người sử dụng Xdebug cho việc dò lỗi trong ứng dụng web. Và để thực hiện điều này, tôi sẽ dùng Netbeans để tích hợp công cụ này và debug lỗi.

2 - Cấu hình XDebug với WAMP

Đầu tiên chúng ta cần chỉnh sửa lại file php.ini để cấu hình các thông số cho Xdebug. Bạn click chuột trái vào icon Wamp server trên thanh hệ thống, chọn vào mục PHP và click vào php.ini như hình bên dưới

Sau đó, chúng ta tìm đến khu vực XDebug (dùng Ctrl + F để tìm), và thêm vào đoạn code như bên dưới.
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp

3 - Cài đặt add-on cho việc dùng Xdebug đơn giản hơn.

Khi dùng XDebug, nó đòi hỏi 1 session DEBUGGER, nếu chúng ta code php thuần thì không cần thiết nhưng nếu chúng ta muốn debug một framework với mô hình MVC thì chúng ta cần các add-on này, nhằm mục đích tạo session trên chính url mà mình đang muốn debug.
Bên dưới mình liệt kê 2 add-on thường dùng của mình trên 2 trình duyệt chính

Ngoài ra, bạn có thể tham khảo link sau để có thể cài đặt các add-on cho các trình duyệt khác: http://xdebug.org/docs/remote

4 - Cấu hình Netbeans khởi chạy debug

Bạn khởi động chương trình Netbeans, vào Menu Tools -> chọn Options và chọn vào Tag PHP, sau đó cấu hình như trong hình bên dưới (mặc định thì Netbeans đã cấu hình như vậy rồi)
Cấu hình debug cho netbeans - PHP

Sau đó, bạn click chuột phải vào project của mình (có thể nhấn Ctrl+1 để mở panel project của Netbeans lên), chọn vào properties, và chọn vào phần Run Configuration như hình bên dưới. Lưu ý: phần Project Url, mọi người tùy chỉnh giống như url đang tiến hành debug, không làm giống như hình, sau đó mọi người click vào nút Advance… như trong hình
Config netbeans for debugging

Sau đó, trong hộp thoại Advance Web Configuration, chọn Do not Open Web Browser và không quan tâm dòng Path Mapping might be needed như hình bên dưới
Advance config project PHP in Netbeans

Như vậy là đã cấu hình xong hết, giờ tới bước cuối cùng.

  5- Debug project PHP

Trong bài hướng dẫn này, mình sẽ hướng dẫn dựa trên code Zend Framework, bước thực hiện là tương tự cho các framework hoặc CMS khác.
Click chuột phải vào project muốn debug, vào chọn debug như hình bên dưới

Start project debug

Lúc này, Netbeans sẽ waiting 1 session Xdebug, chúng ta hãy mở trình duyệt đã cài add-on như bước 3, và đi tới url cần debug code, (ở đây mình dùng Firefox để làm ví dụ minh họa). Sau đó hãy click vào icon easy debug theo mũi tên trong hình

Sau khi click vào đây, chúng ta refresh lại trang web đang xem để easy Debug gửi 1 Session Debugger cho Netbeans, việc còn lại là chúng ta quay lại Netbeans để bắt đầu debug code. Vì tôi dùng Zend Framework để debug nên đầu tiên hết, chương trình sẽ nhảy tới file index.php trong thư mục public. Điều này không quan trọng, chúng ta sẽ dùng tổ hợp phím sau để tiến hành debug.
Và bây giờ mọi người hãy khám phá tính năng debug của Netbeans với Xdebug.

No comments:

Post a Comment