Vẫn đang sử dụng var_dump để gỡ lỗi mã PHP của bạn? . Mặc dù var_dump có thể thuận tiện, nhưng đó là một cách tiếp cận rất thẳng thừng. Trong bài viết này, tôi sẽ chỉ cho bạn cách thiết lập gỡ lỗi phù hợp với PhpStorm, Xdebug và PHPUnit, đồng thời cung cấp cho bạn trải nghiệm gỡ lỗi tinh vi, hiện đại Show
Gần đây, tôi đang phát triển một dự án phụ và đã phải tạo một số gói phụ thuộc để hỗ trợ dự án đó. Các gói phụ thuộc này thực hiện một số nhiệm vụ nhỏ hơn, những nhiệm vụ không thuộc về gói chính Một ví dụ là một gói có tên là bộ lọc tiền tệ. Nhiệm vụ của nó là lọc một chuỗi tiền tệ định dạng châu Âu, chẳng hạn như Không phải là một yêu cầu phức tạp, bạn có thể nghĩ. Nhưng tôi càng cung cấp nhiều dữ liệu thử nghiệm cho mã, thì tôi càng tìm thấy nhiều trường hợp sử dụng cần được xử lý. Hãy xem các thử nghiệm của dự án để biết danh sách đầy đủ, nhưng đây là danh sách ngắn
Trong giai đoạn đầu của quá trình phát triển, trong một số trường hợp, các thử nghiệm đã xác thực rằng các giá trị mong đợi đã được trả về. Tuy nhiên, ở những người khác, các giá trị mà tôi mong đợi được trả lại, không. Theo bản năng (sai), tôi bắt đầu sử dụng phương thức var_dump của PHP để thử xem giá trị được trả về là gì Chà, nếu bạn đã từng thử var_dump một biến trong quá trình kiểm tra PHPUnit, thì bạn sẽ biết rằng PHPUnit không hài lòng với điều đó. Tôi không chỉ không thấy giá trị mà tôi muốn, thay vào đó tôi còn thấy một dấu vết ngăn xếp khó sử dụng Vì vậy, một người đàn ông phải làm gì. Tôi cần biết những gì đã được trả lại, nhưng cách mà tôi đang cố gắng tìm ra nó không hiệu quả. Giải pháp là sử dụng gỡ lỗi từng bước trong PhpStorm Nếu bạn không quen với gỡ lỗi từng bước, thì đó là nơi bạn, như tên của nó ngụ ý, lướt qua mã của bạn, từng dòng một Thiết lập gỡ lỗi từng bước trong PHPRất vui, để thiết lập nó trong PHP, bạn không cần nhiều. Tất cả những gì bạn cần là ba điều Bất cứ khi nào tôi viết mã PHP, có thể nói rằng tôi sử dụng PhpStorm một cách hợp lý. Vì vậy, đó là lý do tại sao, trong bài viết này, tôi sẽ chỉ cho bạn cách tích hợp Xdebug, PHPUnit và PhpStorm Lưu ý nhỏBài viết này không đề cập đến việc gỡ lỗi các ứng dụng dựa trên web bằng PhpStorm, nhưng đề cập đến các thư viện mã nhỏ hơn. Đôi khi, việc thiết lập gỡ lỗi (từ xa) cho các ứng dụng dựa trên web có thể là một công việc khó khăn và phức tạp, tùy thuộc vào cấu trúc môi trường phát triển của bạn Những gì bạn cầnBạn sẽ không cần nhiều thứ để làm theo hướng dẫn này, chỉ cần những điều sau đây
Cài đặt và cấu hình XdebugĐiều đầu tiên chúng ta cần làm là thêm hỗ trợ Xdebug vào tệp nhị phân PHP của chúng ta. Để làm điều đó, tôi đặc biệt khuyến khích bạn sử dụng trình quản lý gói trên bản phân phối Linux của bạn hoặc trình quản lý gói cho hệ điều hành của bạn, chẳng hạn như Homebrew trên macOS Đối với các ví dụ trong bài viết này, tôi sẽ giả định rằng bạn đang chạy bản phân phối Linux dựa trên Debian, chẳng hạn như Debian, Ubuntu hoặc Linux Mint. Tuy nhiên, vui lòng điều chỉnh chúng cho phù hợp với trình quản lý gói mà bạn chọn Để cài đặt Xdebug, hãy chạy lệnh sau
Sau đó, sau khi Xdebug được cài đặt, bạn cần đảm bảo rằng nó đã được bật và được định cấu hình đúng cách. Trình quản lý gói rất có thể sẽ kích hoạt nó, nhưng để chắc chắn hãy chạy lệnh sau
Nếu bạn thấy “Xdebug” ở đầu ra, thì nó đã được cài đặt và kích hoạt. Bây giờ chúng ta cần cấu hình nó đúng cách. Để làm điều đó, chúng tôi cần đảm bảo rằng Trước tiên, chúng ta cần tìm tệp cấu hình có liên quan. Chúng ta có thể tìm thấy nó bằng cách chạy lệnh sau
Điều này sẽ xuất một cái gì đó như
Lưu tệp và sau đó kiểm tra xem cài đặt có hiệu lực hay không bằng cách chạy lệnh sau
Bạn sẽ thấy Định cấu hình Cài đặt PHP của PhpStormBây giờ Xdebug đã được cài đặt và định cấu hình, chúng ta cần định cấu hình PhpStorm. Để làm điều đó, trong cài đặt của PhpStorm, bên dưới “Ngôn ngữ & Khung -> PHP”, nhấp vào nút Thêm, bên cạnh danh sách thả xuống Trình thông dịch CLI, bạn có thể xem ví dụ trong ảnh chụp màn hình bên dưới Điều đó sẽ cho bạn thấy danh sách các trình thông dịch PHP được định cấu hình. Chọn phiên bản PHP của bạn ở cột bên trái. Tiếp theo, đảm bảo rằng “Xdebug” được viết bên cạnh “Debugger”, như trong ảnh chụp màn hình bên dưới Nếu đúng như vậy, thì PhpStorm đang hoạt động với tệp nhị phân PHP có hỗ trợ Xdebug Định cấu hình Hỗ trợ PHPUnit của PhpStormBây giờ, chúng ta cần đảm bảo rằng PhpStorm đã thiết lập tích hợp PHPUnit chính xác. Để làm điều đó, hãy mở hộp thoại cài đặt của PhpStorm và lọc theo “phpunit” hoặc điều hướng đến “Languages & Frameworks -> PHP -> Test Frameworks” Nếu không có cấu hình nào được liệt kê ở cột giữa, hãy nhấp vào nút dấu cộng để thêm cấu hình. Trong cửa sổ bật lên xuất hiện, chọn “PHPUnit Local”. Tiếp theo, chúng ta cần định cấu hình cách PHPUnit khả dụng trên hệ thống của bạn Có ba sự lựa chọn
Tôi thường bao gồm PHPUnit trên cơ sở từng dự án thông qua Trình soạn thảo, như một yêu cầu phát triển. Vì vậy, đó là tùy chọn mà tôi sẽ thực hiện trong ví dụ này. Do đó, tôi sẽ chọn “Sử dụng trình tải tự động Trình soạn thảo” Sau khi thực hiện việc đó, hãy nhấp vào thư mục ở phía ngoài cùng bên phải của “Đường dẫn đến tập lệnh. ”. Trong hộp thoại trình duyệt tệp xuất hiện, tìm và chọn Trình tải tự động của Trình soạn thảo (vendor/autoload. php) trong dự án của bạn. Sau khi làm như vậy, nếu bạn nhấp vào biểu tượng tải lại, bên cạnh đường dẫn trình tải tự động, bạn sẽ thấy thông báo xác nhận màu xanh lá cây, cho bạn biết rằng thông tin phiên bản PHPUnit đã được cập nhật thành công. Ngoài ra, bạn sẽ thấy phiên bản PHPUnit được in bên dưới đường dẫn, bên cạnh “Phiên bản PHPUnit” Khi đã xong, hãy nhấp vào “OK” để đóng cửa sổ cài đặt Đặt một hoặc nhiều điểm ngắt trong dự án của bạnBây giờ chúng tôi đã hoàn thành tất cả các thiết lập và cấu hình cần thiết, đã đến lúc đặt một hoặc nhiều điểm dừng trong mã của chúng tôi và bắt đầu trình gỡ lỗi. Trong ảnh chụp màn hình bên dưới, bạn có thể thấy rằng tôi đã đặt điểm dừng trên một dòng tùy ý trong một trong các tệp nguồn của dự án của mình Để làm điều đó trong dự án của bạn, hãy nhấp vào tệp máng xối, trên dòng mà bạn muốn đặt điểm dừng. Nếu bạn nhấp vào khu vực bên phải, một biểu tượng màu đỏ sẽ xuất hiện, cho biết bạn đã đặt điểm dừng và dòng này cũng sẽ được đánh dấu màu đỏ (cho phép chủ đề của bạn). Để xóa nó, hãy nhấp lại vào vị trí đó Bắt đầu gỡ lỗi từng bướcBây giờ, bạn đã sẵn sàng bắt đầu trình gỡ lỗi từng bước. Có nhiều cách để làm điều này;
Chọn cách bạn thích và khởi chạy trình gỡ lỗi Tùy thuộc vào tốc độ của máy phát triển của bạn, trình gỡ lỗi sẽ dừng tại điểm ngắt và liệt kê đường dẫn thực thi đến dòng đó trong mã của bạn trong cửa sổ Khung của bảng gỡ lỗi và liệt kê một hoặc nhiều biến trong cửa sổ Biến. Trong ví dụ bên dưới, bạn có thể thấy rằng tôi có bảy biến được liệt kê trong cửa sổ Biến Cụ thể, bạn có thể thấy giá trị của biến được truyền cho phương thức mà tôi đang gỡ lỗi 0, giá trị mà nó đang được so sánh với 1. Tuy nhiên, cái mà nó không có là giá trị trả về của hàm đó. Để thêm điều đó, tôi sẽ chọn chức năng gọi, nhấp chuột phải và chọn “Thêm vào đồng hồ”. Sau đó thêm lời gọi hàm vào cửa sổ Biến và hiển thị giá trị mà nó sẽ trả vềTừ đây, một số tùy chọn khác có sẵn. đó là Hiển thị điểm thực thi Điều hướng bạn đến đoạn mã hiện đang thực thi. Step Over Thực hiện dòng tiếp theo, chuyển sang dòng sau và tạm dừng. Step IntoNếu dòng tiếp theo của mã là lệnh gọi hàm, mã sẽ tạm dừng ở dòng đầu tiên của hàm. Step OutĐiều này thực thi phần còn lại của chức năng hiện tại và đưa bạn trở lại trình gọi và tạm dừng. Run to CursorĐiều này sẽ thực thi tất cả mã giữa điểm dừng hiện tại và nơi con trỏ đã được đặt. Đánh giá biểu thứcĐiều này mở ra một hộp thoại cho phép bạn đánh giá một biểu thức tùy chỉnh, dựa trên trạng thái mã hiện tại. Force Step OverĐiều này cho phép bạn nhảy qua lệnh gọi phương thức, bỏ qua các điểm dừng. Force Run to CursorĐiều này cho phép bạn chuyển đến vị trí con trỏ trong khi bỏ qua các điểm dừng hiện có trên đường điTóm lại làVà đó là cách thiết lập gỡ lỗi PHP với PhpStorm, Xdebug và PHPUnit. Chắc chắn, có một số bước liên quan, nhưng chúng ít nhiều đơn giản và hợp lý. Thứ hai, họ không nên mất nhiều thời gian để hoàn thành, có thể là 5 - 10 phút. Ngoài ra, khi hoàn thành, chúng sẽ giúp biết chính xác mã của bạn đang làm gì vào bất kỳ thời điểm nào một cách hiệu quả, cho dù bạn đang thực thi mã trực tiếp hay kiểm tra mã bằng các bài kiểm tra đơn vị dựa trên PHPUnit Hơn nữa, bạn có thể ngừng sử dụng cái búa lớn là 2 và tránh xả rác mã của mình bằng các câu lệnh mà sau này bạn phải xóaBạn cũng có thể quan tâm đếnMuốn có thêm hướng dẫn như thế này?Nếu vậy, hãy nhập địa chỉ email của bạn vào trường bên dưới và nhấp vào đăng ký Bạn có thể hủy đăng ký bất kỳ lúc nào bằng cách nhấp vào liên kết ở cuối email bạn sẽ nhận được. Đây là chính sách bảo mật của tôi, nếu bạn muốn biết thêm. Tôi sử dụng Mailchimp để gửi email. Bạn có thể tìm hiểu thêm về thực tiễn bảo mật của họ tại đây Làm cách nào để Gỡ lỗi bằng PhpStorm?Bắt đầu nhanh
. Trên thanh công cụ PhpStorm, chuyển đổi . để bắt đầu lắng nghe các kết nối gỡ lỗi PHP sắp tới hoặc chọn Chạy. Bắt đầu nghe các kết nối gỡ lỗi PHP từ menu chính . Đặt điểm dừng trong mã của bạn.
Làm cách nào để đặt điểm ngắt trong PHP?Để đặt điểm ngắt, đặt con trỏ ở đầu dòng và nhấn Ctrl-F8/⌘-F8 hoặc chọn Gỡ lỗi > Chuyển đổi điểm ngắt dòng. Switch to the Local Variables window. The window shows all the variables that have been initialized within the current function, their types, and values.
Làm cách nào để bật Xdebug trong PHP?Định cấu hình Xdebug . Chọn đúng tệp nhị phân Xdebug. Chọn phiên bản tùy thuộc vào phiên bản PHP của bạn. . Sao chép tệp nhị phân Xdebug vào Thư mục tiện ích mở rộng PHP của bạn. Thư mục tiện ích mở rộng PHP thường nằm trong thời gian chạy PHP của bạn, trong thư mục con ext. . Cập nhật cấu hình PHP. Chỉnh sửa tệp cấu hình PHP. . xác minh cài đặt |