Chạy chế độ gỡ lỗi php

Hướng dẫn cách gỡ lỗi PHP trong netbean sử dụng xdebug
Bước 1. Cài netbean 6. 9. 1, cài xampp, tải php_xdebug-2. 2. 3-5. 4-vc9. dll [ lựa chọn
phiên bản 2. 2. 3 bản php 5. 4 [32bit or 64bit] by php version 5. 4. 7,tải tại đây
[Phiên bản Xdebug phải phù hợp với phiên bản PHP]
Bước 2. tạo 1 file phpinfo. php trong thư mục C. \xampp\htdocs, trường hợp không có tệp
phpinfo. php could create this file in the directory on và nhập vào đoạn mã sau “phpinfo[]; . Open browser up address localhost/phpinfo. php will have been as shape
bên dưới sẽ thấy phiên bản đc

Bước 3. open file php. ini[ nằm trong thư mục C. \xampp\php] của xampp lên xem và nhập
vào đoạn mã[kéo xún cuối cùng rồi dán vào] sau.
[XDebug]
zend_extension = "C. \xampp\php\ext\php_xdebug-2. 2. 3-5. 4-vc9. dll"
xdebug. remote_handler="dbgp"
xdebug. remote_enable=on
xdebug. remote_host="localhost"

xdebug. remote_port=9000
Bước 4. sao chép php_xdebug-2. 2. 3-5. 4-vc9. dll được đưa vào thư mục C. \xampp\php\ext
Bước 5. bắt đầu bảng điều khiển xampp

Chờ cho nó xanh 2 vị trí trên là ok.
Bước 6. Kiểm tra coi cài đặt xdebug ok chưa

Có dòng đỏ đó là ok

Bước 7. Mở netbean => select file>newproject>php>phpapplication
Phần sourcefolder select to project php của mình. Tích cực đưa siêu dữ liệu netbeans vào
thư mục riêng [nếu muốn netbeans lưu thêm một bản bên trong dự án netbean,


còn ko tích thì thao tác trên bản cũ và ko sao lưu thêm trong netbean] rồi chọn kết thúc.
Bước 8. vào công cụ chọn tùy chọn sẽ thấy tab php như bên dưới.

Nhấp vào tab php tích vào dừng ở dòng đầu tiên xem cổng phải là 9000 ko phiên-id có phải
là “netbeans-xdebug”. Xong click ok.
Mở trang php ở chế độ gỡ lỗi. Ừ.

PHP là một ngôn ngữ phổ biến nhất cho các nhà lập trình web, nhưng lại gặp sự cố chỉ trích rất nhiều rằng nó thiếu một chương trình gỡ lỗi phù hợp. Các nhà phát triển sử dụng các ngôn ngữ như Java, C# chắc chắn có một bộ công cụ gỡ lỗi hiệu quả, thường được đánh giá là hợp trực tiếp với IDE. Nhưng bản chất bị ngắt kết nối của máy chủ web và các IDE PHP đã ngăn chặn chúng tôi phát triển thêm nhiều công cụ khả thi. Chúng tôi phải tự gỡ lỗi mã bằng cách bổ sung các câu lệnh kiểm tra. for to when has Xdebug

Xdebug là một dự án mã nguồn mở miễn phí của Derick Rethans và là một trong những tiện ích mở rộng PHP hữu ích nhất. Nó không chỉ cung cấp công cụ gỡ lỗi cơ bản mà còn hỗ trợ theo dõi ngăn xếp, lập hồ sơ,. Bài viết này sẽ trình bày cách cài đặt và cấu hình Xdebug. Gỡ lỗi ứng dụng PHP bằng Netbeans như thế nào, và giải thích cách đọc báo cáo hồ sơ trong KCchegrind

Cài đặt và cấu hình Xdebug

Nếu bạn sử dụng XAMPP hoặc MAMP, Xdebug đã được cài đặt sẵn, bạn chỉ cần kích hoạt nó trong
php. ban đầu. Ngoài ra, nếu bạn đang sử dụng một gói cài đặt phần mềm dựa trên một nền tảng như Ubuntu, bạn có thể cài đặt nó thông qua Trình quản lý gói với nâng cấp như apt-get intall php5-Xdebug

Cấu hình Xdebug trong file php. ini as after

[xdebug]
zend_extension="/Applications/MAMP/bin/php5.2/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000

Xác định Zend_extension đường dẫn đến mô-đun Xdebug. xdebug value. remote_enable đã thay đổi bất kỳ phần mở rộng nào đang hoạt động hay không. Xdebug. remote_host là tên hoặc địa chỉ IP của hệ thống bạn sử dụng [tại đây tôi điền localhost để chạy ngay trên cục bộ, nhưng giá trị có thể là một địa chỉ IP hoặc một tùy chọn DNS thuộc về mục đích của bạn]. Xdebug. remote_port là cổng mà client lắng nghe một kết nối từ Xdebug [9000 là cổng mặc định]

Khi sử dụng Xdebug, điều quan trọng là đảm bảo bạn không sử dụng bất kỳ tiện ích mở rộng Zend nào vì chúng có thể xung đột với Xdebug

Có nhiều quyền lựa chọn cài đặt khác khá tốt. Trang web Xdebug cung cấp một ứng dụng đơn giản hướng dẫn bạn cài đặt. Bạn có thể lấy đầu ra của phpinfo[] hoặc php-i và dán nó vào Hộp văn bản, sẽ có hướng dẫn phân tích cấu hình máy chủ đang sử dụng và chỉ cho bạn cách biên dịch Xdebug cho máy tính của bạn

gỡ lỗi

To debug ta luôn có xu hướng sử dụng kết hợp var_dump[] và exit/die[]. Nhưng ở phương pháp này, buộc phải điều chỉnh mã để gỡ lỗi, bạn phải nhớ mọi nơi bổ sung câu lệnh đầu ra để loại bỏ chúng sau khi gỡ lỗi xong. Xdebug giải quyết được điều này bằng cách cho phép bạn tạm dừng thực thi ứng dụng của mình khi bạn muốn kiểm tra giá trị của các biến trong phạm vi đó để xác định xem PHP đang thực thi những gì

Bạn có thể dễ dàng cấu hình Netbeans để hoạt động như một ứng dụng khách của Xdebug. Mở cửa sổ tùy chọn [Tool > Options] và chọn tab Debugging trong phần PHP. Enter to Debugger port as in file php. in và Session ID để sử dụng khi gỡ lỗi

Bây giờ bạn sẽ có thể chạy chương trình gỡ lỗi bằng cách nhấn vào Gỡ lỗi trong tab Công cụ

Với mã nguồn mở ra, hãy nhấp vào nút Gỡ lỗi trong thanh Công cụ để bắt đầu gỡ lỗi. Các ứng dụng sẽ được mở trên trình duyệt, và việc chạy PHP sẽ tạm dừng ở dòng đầu tiên của tệp nếu bạn đã kích hoạt “Dừng ở dòng đầu tiên” trong cửa sổ Tùy chọn. Nếu không, nó sẽ chạy cho đến khi nó gặp Breakpoint lần đầu tiên. Từ đó, bạn có thể tiếp tục chạy cho đến các điểm dừng tiếp theo bằng cách sử dụng nút tiếp tục

Thông báo trong URL của Brower thanh tham số XDEBUG_SESSION_START. Để kích hoạt các chương trình giải quyết sự cố, bạn phải vượt qua XDEBUG_SESSION_START dưới dạng tham số yêu cầu [GET/POST] hoặc XDEBUG_SESSION dưới dạng tham số cookie

Có một số thao tác hữu ích khác trong thanh công cụ Gỡ lỗi. Which is

Step over – Nhảy qua dòng đang thực hiện

Bước vào – Nhảy vào chức năng [đối với chức năng không có sẵn]

Step out – Nhảy ra khỏi chức năng hiện tại

Bạn có thể thêm điểm dừng bằng cách nhấn vào dòng số cột ở biên của trình chỉnh sửa. Chúng có thể bị loại bỏ bằng cách nhấp vào chúng một lần nữa. Ngoài ra, vào Window > Debugging > breakpoint sẽ liệt kê tất cả các Breakpoint trong chương trình của bạn và bạn có thể chọn/bỏ chọn những breakpoint mà bạn cần

Trong khi chạy , trạng thái của các biến trong phạm vi hiện được hiển thị trong cửa sổ biến. Nó sẽ hiển thị giá trị của các biến cục bộ và các biến siêu toàn cầu như $ _COOKIE , $ _GET , $ _POST và $ _SERVER. Bạn có thể xem giá trị thay đổi khi bạn chạy qua các câu lệnh

lập hồ sơ

Profiling là bước đầu tiên khi tối ưu hóa các ứng dụng. Công cụ Profiling ghi lại các thông tin quan trọng như thời gian cần thiết để thực hiện các câu lệnh và chức năng, số lần chúng được gọi,… Đầu ra có thể được phân tích để tìm các nút thắt.
Xdebug cũng có thể được sử dụng như một công cụ lập hồ sơ cho PHP. Để bắt đầu hồ sơ ứng dụng của bạn, hãy thêm các thiết lập sau đây cho php. ban đầu.

xdebug.profiler_enable = 1
xdebug.profiler_output_name = xdebug.out.%t
xdebug.profiler_output_dir = /tmp
xdebug.profiler_enable_trigger = 1

Mặc định Hồ sơ bị vô hiệu hóa trong Xdebug , nên xdebug. profiler_enable used to activate it. xdebug. profiler_output_name là tên tệp nhật ký [ t % only mount thêm thời gian vào tên tệp; xem tài liệu danh sách đầy đủ các chỉ định]. Xdebug lưu hồ sơ lưu trữ trong thư mục được chỉ định bởi xdebug. profiler_output_dir. Bạn có thể đến một thư mục khác, nhưng thư mục đó phải có quyền ghi cho tài khoản người dùng, để kịch bản PHP được chạy

Hồ sơ làm giảm hiệu suất vì PHP phải ghi lại chi tiết của các chức năng , vì thế bạn không muốn chạy toàn bộ thời gian của nó. xdebug. profiler_enable_trigger chỉ hiển thị Xdebug để thực hiện cấu hình chỉ khi XDEBUG_PROFILE được thông qua như một tham số GET hoặc POST

Nhật ký tệp được tạo bởi Xdebug có thể nhỏ hoặc lớn tùy thuộc vào việc các ứng dụng đang làm gì. Ngoài ra, nó không thực sự thân thiện với người đọc. Bạn sẽ muốn sử dụng các chương trình như kcachegrind hoặc Webgrind để xem lại. Kcachegrind là công cụ đọc hồ sơ dữ liệu cho KDE, trong đó cần có môi trường Unix để chạy, trong khi Webgrind là công cụ dựa trên web

Mở tệp Hồ sơ lớn trong KCachegrind sẽ hiển thị chi phí của mỗi chức năng được gọi bắt đầu từ main[]. Đây là hình KCachegrind của hồ sơ đầu ra của một chức năng để tìm một nhân tố

Bảng điều khiển bên trái [Function Profile] cho biết thời gian thực hiện của từng chức năng theo lệnh. Bảng điều khiển phía bên phải đồ họa hiển thị các thông tin tương tự cùng kích thước tương ứng với tiêu chí chức năng. Đồ thị cuộc gọi đại diện cho mối quan hệ giữa các chức năng trong ứng dụng. Trong ví dụ này chỉ có hai function, main[] và fact[]. fact[] is a đệ quy function, used only used a circle in map

Trong khi Mã tối ưu hóa, bạn nên tìm kiếm các khu vực với tổng chi phí cao nhất. Thường thì thực hiện I/O sẽ có chi phí cao nhất. Nhớ giảm bớt chúng càng nhiều càng tốt. Bất cứ lúc nào có thể lazy load file

Giả sử bạn có một lớp tên “đơn đặt hàng” cung cấp cho bạn một danh sách của tất cả các đơn đặt hàng và chi tiết của họ từ trang web của bạn

Chủ Đề