Tiếng vang php so với mã

Mỗi lần xuân đến mình lại nhớ về câu. "Có mùa xuân sang là tôi lại thêm một tuổi". Nghe quen quen phải không ạ. Vâng các bạn nhầm lẫn đâu, nó nghe như lời của một bài hát nào đó phải không? . Mà mình đã edit lại một chút để phù hợp với hoàn cảnh bản thân. Mỗi lần đọc câu đó mình lại nhớ đến câu mà cư dân mạng truyền tai nhau. "Có lớn mà không có". Vâng đó là "chính ta của hiện tại", để cải thiện thiện sự "ngu lâu dai bền" mà mình đã tích cực tìm tòi và học hỏi. Và hôm nay mình viết bài này để chia sẻ một trong những điều mình đã học. mã gỡ lỗi PHP sử dụng vscode + xdebug

Gỡ lỗi cơ bản

Trong quá trình học tập và làm việc mình đọc code PHP khá nhiều. Khi mình muốn debug code PHP thì mình sử dụng các hàm như

  • tiếng vang. in ra signal for know the stream is going true
  • var_dump. display value of the variable
  • lối ra. exit nếu muốn code stop back tại vị trí mong muốn

Mình hay kết hợp 3 hàm này để debug dễ dàng hơn

Với 3 hàm trên thì quá trình gỡ lỗi thực sự là khó khăn. Nói cho văn thơ thì đây là thời kỳ ăn lông ở lỗ

Sau một thời gian sử dụng cách này cảm thấy công việc theo dõi code phức tạp quá và mình muốn tìm cái gì đó tốt hơn. Vì mình đã tìm được người bạn thân nhất của mình, google là bạn thân nhất. , và mình cũng có được câu trả lời phù hợp. Câu trả lời đó là debug_print_backtrace [hiển thị luồng gọi của hàm]

Khi thêm hàm debug_print_backtrace, kết quả mang lại rất ấn tượng có đúng không? . Nhưng dù sao thì mình cảm thấy tự hào về bản thân vì cũng đã đặt chân tới thời kỳ đồ đá rồi. . v

Mình sẽ nói thêm về tại sao mình lại kết hợp các hàm như vậy

In sao lại trong dòng cm0s?

Cái này một phần là thói quen, một phần có nhiều kết quả hiển thị ra không chỉ có dữ liệu gỡ lỗi mà còn nhiều dữ liệu không liên quan khác. Do đó mình in ra một dấu hiệu nhận biết để sử dụng tính năng tìm kiếm cho nhanh

Tại sao mình lại sử dụng var_dump để nhập giá trị biến mà không phải là tiếng vang?

var_dump không chỉ trong giá trị mà còn trong cả kiểu dữ liệu của biến. Một điểm nữa là echo sẽ không có giá trị nếu chúng không phải là kiểu chuỗi [chuỗi]. Cuối cùng là tính thẩm thấu, nếu dùng echo thì phải thêm \n vào cuối chuỗi để khi hiển thị nó có thể xuống dòng. That \n must be set in hai dấu nháy kép ["] thì mới xuống dòng. If set in two flashing menu ['], not been. Do vậy mình đã chọn sử dụng var_dump là sự lựa chọn phù hợp nhất

"Kẻ còn chơi là còn mất"

Với phương pháp châm cứu đến nơi chơi tới tàn phế, mình đã ra một quyết định táo bạo là. tìm xem có "đồ" nào tốt hơn không?

Gỡ lỗi với vscode + xdebug

Nếu bạn là một người biết múa quạt thì chắc chắn bạn sẽ biết câu. đấy là bạn chưa chơi đồ đấy bạn ơi

Đúng đúng câu này không có sai đâu, hãy tin vào mình. Chính mình là người đã trải nghiệm và rút ra kết luận rằng. "Chơi đồ thì sướng hơn không chơi". Từ ngày chơi đồ vào thì mình đã nghiện mất rồi. Dù được nhiều người giới thiệu. "bạn ơi đừng nghiện nữa, nhà mình còn gì đâu" nhưng mình vẫn không thể bỏ được. Để biết "đồ" có gì mà lại làm cho mình nghiện sâu đến thế. Thì hãy cùng mình đọc tiếp =]]

/etc/php/7.4/fpm/php.ini
4

Cài đặt

Cài đặt tiện ích mở rộng Gỡ lỗi PHP

Cài đặt PHP Debug rất đơn giản, bạn mở ứng dụng vscode và vào các phần mở rộng và tìm kiếm với từ khóa PHP

Dễ dàng thấy phần mở rộng PHP Debug, bạn chọn vào nó và cài đặt như bình thường. Phần này quá đơn giản không lưu ý gì

Cài đặt Xdebug

Sau khi cài đặt xong PHP Debug extension, tiếp theo ta sẽ cài đặt Xdebug. Để cài đặt Xdebug nhanh chóng và đơn giản bằng cách sử dụng trình hướng dẫn Xdebug

Ta sẽ dán dữ liệu từ câu lệnh

/etc/php/7.4/fpm/php.ini
5 vào ô nhập liệu của trình hướng dẫn. Sau khi nhập xong, ta nhấn nút ở phía dưới để chuyển sang hướng dẫn cài đặt trang

Làm theo 10 bước trong hướng dẫn là ta đã cài đặt xdebug thành công

Trong phần này ta cần nhớ

  • Phiên bản Xdebug mà ta tải
  • Đường dẫn lưu tệp thư viện Xdebug ở bước 9

Cấu hình file php. ban đầu

Sau khi cài đặt xong phần mở rộng tiếp theo cần làm là cấu hình file php. ini to could debug with vscode

1. Xác định nơi lưu tệp cấu hình

To known php file. ini của ta đang ở đâu thì ta tạo file info. php trong thư mục web có chứa đoạn mã sau


Truy cập vào file đó để biết nơi lưu file php. ban đầu

Như trên hình nơi lưu tệp php. ini is

/etc/php/7.4/fpm/php.ini

2. Sửa nội dung file php. ban đầu

Open file php. ini với đường dẫn đã được xác định từ bước trên và sửa đổi để phù hợp

Add to end file php. ini with after code

Xdebug 3. x. x

[XDebug]
xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.client_port = 9000
zend_extension = /usr/lib/php/20190902/xdebug.so

Xdebug 2. x. x

[XDebug]
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
zend_extension = /usr/lib/php/20190902/xdebug.so

Sau khi đã hoàn tất tất cả các bước trên ta khởi động lại. nginx và php-fpm

sudo systemctl restart nginx.service && sudo systemctl restart php7.4-fpm.service 

Để kiểm tra ta có thể sử dụng lệnh

/etc/php/7.4/fpm/php.ini
6 hoặc vào trang thông tin. php made from before

Use

Before when used to make file config debug for vscode. Việc tạo file cấu hình cũng đơn giản, các bạn tham khảo tại đây để cấu hình nhé. Mình đưa ra file cấu hình của mình để các bạn so sánh

________số 8

Để bắt đầu nghe bạn nhấn vào nút chạy màu xanh

Tiếp theo là đặt điểm dừng và gỡ lỗi. Trong hình bên dưới mình đặt break point tại dòng 1384 sau đó mình gửi yêu cầu gỡ lỗi

Với sự giúp đỡ của trình gỡ lỗi, công việc gỡ lỗi của mình trở nên nhẹ nhàng hơn nhiều. Với trình gỡ lỗi mình có thể nhảy từng dòng để quan sát sự thay đổi giá trị của các biến cũng như luồng thực thi của chương trình. Và điểm lợi hại của trình gỡ lỗi cho phép mình có thể thay đổi giá trị trong lúc gỡ lỗi. Từ đó có thể thay đổi luồng thực thi mà không tốn nhiều công sức. Nói chung là debuger rất có hại. . v

Đến đây các bạn đã hiểu vì sao mình lại bị nghiện khi chưa chơi đồ. =]]

Đến đây cũng coi như hết bài rồi. Phân vùng bên dưới đã được giải quyết lỗi trong quá trình cài đặt và sử dụng

Thank you many

Khắc phục lỗi

Trong quá trình cài đặt không thể tránh khỏi lỗi. Do đó khi cài đặt các bạn cần lưu ý một số điểm sau

  • Thực hiện đúng theo hướng dẫn
  • Cấp quyền đầy đủ [khi sử dụng linux]

Để xem thông tin Xdebug cũng như kiểm tra lỗi khi cài đặt bạn tạo tệp xdebug. php chứa đoạn mã sau


Error. Tạo ổ cắm cho 'localhost. 9000', getaddrinfo. đối số không hợp lệ

Lỗi này xảy ra do không thể phân giải tên miền localhost thành địa chỉ IP. Do trước đó mình đã đổi localhost thành notlocalhost trong file /etc/hosts

Chủ Đề