Tôi đã dành quá nhiều thời gian vào tuần trước để tìm ra cấu hình Xdebug phù hợp cho máy ảo Drupal với PHP 8. 1. 10 sử dụng Visual Studio Code. Trong trường hợp có người khác tình cờ gặp phải các trường hợp sử dụng hàng ngày, đây là một hướng dẫn nhỏ
Trong trường hợp bạn quan tâm tại sao
Những chi tiết nhỏ này nằm ngoài tầm kiểm soát của các tác vụ mã hóa hàng ngày của tôi - nhưng tất nhiên lý do tại sao vẫn khiến tôi quan tâm. Theo như tôi có thể nói, PHP 8+ yêu cầu Xdebug 3+ và các tùy chọn cấu hình đã thay đổi đáng kể trong Xdebug 3+, bao gồm một số thay đổi đặc biệt khó hiểu đối với tên biến. Đối với Drupal VM, điều đó có nghĩa là chỉnh sửa xdebug. ini và sau đó là cấu hình của bạn. yml theo sau là cung cấp lại máy của bạn.
Trong khi tìm kiếm câu trả lời, tôi đã gặp vấn đề này. DrupalVM có hoạt động với Xdebug V3 được cài đặt trên máy chủ không?. Phần khiến tôi đặc biệt bối rối là xdebug. cấu hình remote_host đã thay đổi thành một xdebug nghe có vẻ không giống chút nào. client_host
Dù sao đi nữa, sau khi đau đầu, những thay đổi sau đây đã khiến tôi quay lại gỡ lỗi
/drupal-vm/cung cấp/vai trò/geerlingguy. php-xdebug/mẫu/xdebug. ban đầu. j2
Thêm những dòng này vào khai báo hiện có
xdebug.mode={{ php_xdebug_mode }} xdebug.client_host={{ php_xdebug_client_host }} xdebug.start_with_request={{ php_xdebug_start_with_request }}drupal-vm/config. yml
Đây là toàn bộ cấu hình Xdebug của tôi, vì vậy bạn có thể ghi đè cấu hình của mình bằng cấu hình này để nó hoạt động, sau đó bắt đầu từ đó. Nhiều tùy chọn trong số này là các cấu hình Xdebug kế thừa không có tác dụng nhưng không gây hại gì. Những thứ quan trọng ở đây là php_xdebug_version, php_xdebug_client_host, php_xdebug_start_with_request và php_xdebug_mode - mặc dù điều này phụ thuộc vào nhu cầu cấu hình của bạn
# XDebug configuration; much of these are legacy options and not strictly necessary php_xdebug_version: 3.1.0 php_xdebug_default_enable: 1 php_xdebug_coverage_enable: 1 php_xdebug_cli_disable: yes php_xdebug_remote_enable: 1 php_xdebug_remote_connect_back: 1 php_xdebug_idekey: VSCODE php_xdebug_max_nesting_level: 256 php_xdebug_client_host: "{{ ansible_default_ipv4.gateway }}" php_xdebug_mode: debug php_xdebug_start_with_request: yesvscode/khởi chạy. json
Đây là VSCode tiêu chuẩn Nghe để khởi chạy Xdebug. json - chỉ cần FYI sử dụng cổng mặc định 9003 đã trở nên quan trọng trong trường hợp của tôi
{ "version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9003, "pathMappings": { "/var/www/my-project-webroot": "${workspaceRoot}/repo" } } ] }Hãy chắc chắn rằng bạn vagrant reload --provision sau khi lưu tất cả các thay đổi của bạn. Bạn có thể muốn vá xdebug. ban đầu. j2 cũng vậy, thay vì chỉ hack nó
PHP là một trong những ngôn ngữ lập trình phổ biến nhất để phát triển web phía máy chủ. Nó được sử dụng trong nhiều framework và CSM như WordPress, Laravel, Symfony và những nền tảng khác đứng sau một phần khá lớn của Internet
Visual Studio là một IDE mạnh mẽ, nhưng trọng tâm của nó không phù hợp với một số ngôn ngữ, PHP là một trong số đó. Khi thời gian trôi qua, nhiều ngôn ngữ đã tìm đến Visual Studio, như Python và cuối cùng là PHP. Một công ty có trụ sở tại Praha tên là DEVSENSE đã phát triển một tiện ích mở rộng có tên Công cụ PHP dành cho Visual Studio đã có sẵn trong hệ sinh thái Visual Studio hơn một thập kỷ
Kể từ khi thành lập, Công cụ PHP dành cho Visual Studio là một tiện ích mở rộng trả phí, cung cấp bản dùng thử miễn phí. Bây giờ, điều đó đã thay đổi. DEVSENSE đang phát hành một phần lớn ưu đãi của họ dưới dạng tiện ích mở rộng miễn phí, để lại một số tính năng dưới dạng trả phí. Điều đó cho phép các nhà phát triển PHP làm việc trong Visual Studio và tận dụng tất cả những thứ tuyệt vời có sẵn
Điều đó có nghĩa là các nhà phát triển sẽ nhận được IntelliSense, định dạng, hệ thống dự án, phân tích mã nhanh chóng, tích hợp trình soạn thảo [quản lý phụ thuộc PHP] và các tính năng liên quan đến trình soạn thảo nâng cao khác miễn phí. Trong phiên bản mới nhất, PHP Tools hỗ trợ PHP 8. 2 chưa được phát hành chính thức và những thứ khác như generics là thứ bắt buộc phải có đối với các framework như Laravel. Các tính năng khác như gỡ lỗi, tái cấu trúc, kiểm tra đơn vị và ống kính mã có sẵn trong ưu đãi cao cấp. Bạn có thể tìm thấy ma trận so sánh chi tiết tại https. //www. phát minh. com/mua
Bắt đầu nhanh
Trước tiên, hãy cài đặt Công cụ PHP cho Visual Studio
Tạo dự án PHP của bạn
Sau khi cài đặt
- Chọn Tạo dự án mới từ trang bắt đầu hoặc Tệp > Mới > Dự án… từ thanh tiêu đề
- Trong hộp tổ hợp ngôn ngữ, hãy chọn PHP, chọn Dự án web PHP, sau đó chọn Tiếp theo
- Đặt tên cho dự án của bạn và chọn Tạo
- Tại thời điểm này, bạn có thể chọn mẫu dự án. Hãy chọn Trang web trống và chọn Tiếp theo.
- Bây giờ, bạn có thể chọn phiên bản PHP sẽ đặt cho dự án. Đối với hướng dẫn ngắn này, chúng ta có thể sử dụng PHP 8. 1 và chọn Kết thúc. Công cụ PHP sẽ kiểm tra môi trường của bạn và cài đặt, cấu hình PHP được thiết lập trong dự án.
Sử dụng Trình soạn thảo PHP trong Visual Studio
Khi cài đặt xong, dự án sẽ mở. Trong trình chỉnh sửa, bạn có thể di chuột qua bất kỳ biểu tượng nào để nhận chú giải công cụ. Hoặc nhấn Ctrl + Space để xem IntelliSense cho ngữ cảnh hiện tại
Chạy và gỡ lỗi PHP trong Visual Studio
Đặt một điểm dừng F9 và nhấn F5 để chạy dự án và bắt đầu gỡ lỗi. Máy chủ được cấu hình trong dự án [theo mặc định là máy chủ Web tích hợp sẵn của PHP] sẽ chạy và trình duyệt mở ra. Sau đó, điểm dừng sẽ bị tấn công
Xin chúc mừng. Bạn đang gỡ lỗi PHP trong Visual Studio
Đây là hướng dẫn đơn giản về cách sử dụng Công cụ PHP dành cho Visual Studio khi bạn có một dự án trong giải pháp. Có thể thiết lập phức tạp hơn. các nhà phát triển có thể thêm các dự án PHP vào các giải pháp hiện có của họ [*. sln] – có một IDE sẽ giúp cuộc sống của họ dễ dàng hơn hoặc họ có thể làm việc với PHP chỉ bằng cách mở một thư mục. Có thể tìm thấy nhiều hướng dẫn hơn trên tài liệu của DEVSENSE
Bước tiếp theo
Nếu bạn quan tâm đến việc phát triển PHP trong Visual Studio, vui lòng cài đặt Công cụ PHP dành cho Visual Studio và đảm bảo cho tác giả biết bạn thích nó như thế nào, bạn còn thiếu những tính năng nào hoặc nếu bạn gặp bất kỳ vấn đề gì cần cải thiện thêm. Bạn có thể liên hệ với họ tại Diễn đàn cộng đồng công cụ PHP của DEVSENSE