Gần đây tôi đã bắt đầu lập trình bằng PHP bằng khung Symfony nổi tiếng. Tôi muốn giữ thói quen VS Code và sự thành thạo mà tôi đã có từ các dự án trước đây của mình trong Node. js và Vue. js, vì vậy tôi cũng đã cố gắng định cấu hình Mã VS để phát triển PHP. Hơn nữa, tôi không muốn đầu tư €199 vào PHPStorm IDE nổi tiếng… 😕
TL;DR
Các tiện ích mở rộng Mã VS bạn nên cài đặt và định cấu hình để phát triển PHP
Trong bài viết này, tôi sẽ giải thích cách tôi quản lý để làm cho môi trường phát triển của mình có thể so sánh với PhpStorm's. Các lệnh sẽ được hướng dẫn chi tiết cho Ubuntu 18. 04, nhưng chúng có thể được điều chỉnh cho Mac OS và có thể cho Windows
Tôi sẽ lấy một ứng dụng Symfony rỗng làm ví dụ cho bài viết này. Hãy bắt đầu
điều kiện tiên quyết
Cài đặt PHP và Trình soạn thảo
Để có thể chạy mã PHP, rõ ràng bạn cần cài đặt PHP. Bạn cũng có thể cần Trình soạn thảo, trình quản lý phụ thuộc thường được sử dụng cho PHP. Bạn có thể cài đặt chúng bằng cách chạy lệnh sau
sudo apt install php-cli composer
Bạn có thể cài đặt
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
0 thay vì echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
1 nếu bạn cũng muốn cài đặt một số thư viện hữu íchTạo một dự án Symfony trống
Bây giờ hãy tạo một ứng dụng Symfony trống. Sau đó mở Mã VS và khởi chạy máy chủ phát triển
composer create-project symfony/website-skeleton my-symfony-website
cd my-symfony-website
code .
bin/console server:run
Tăng số lượng người theo dõi hệ thống nếu cần
Mã VS cần theo dõi các thay đổi của tệp để hoạt động chính xác. Đó là lý do tại sao cảnh báo sau có thể xuất hiện vì dự án Symfony của chúng tôi chứa rất nhiều tệp
Để khắc phục, bạn có thể chạy các lệnh sau trong thiết bị đầu cuối của mình, sau đó khởi động lại Mã VS
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Truy cập http. //127. 0. 0. 1. 8000 từ trình duyệt web yêu thích của bạn và kiểm tra xem trang web Symfony của bạn có hoạt động không
Tự động hoàn thành & Intellisense & Chuyển đến định nghĩa
Hãy tạo một tuyến đường mới trong ứng dụng của chúng tôi. Chỉ cần thêm một tệp trống
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
2 vào thư mục echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
3Cài đặt PHP Intelephense
Theo mặc định, Mã VS cung cấp một số đề xuất mã cơ bản nhưng chúng chung chung và khá vô dụng. Để nhận các đề xuất mã hữu ích khi bạn nhập, tôi khuyên bạn nên cài đặt tiện ích mở rộng PHP Intelephense cho VS Code. Tôi cũng đã thử tiện ích mở rộng PHP Intellisense nhưng tiện ích này chậm hơn đối với các dự án lớn và cung cấp ít tính năng hơn [ví dụ: tiện ích này không chuyển sang màu xám khi nhập không sử dụng]
Bây giờ tiện ích mở rộng PHP Intelephense đã được cài đặt, chúng ta có thể bắt đầu viết HelloWorldController của mình
Như bạn có thể thấy, các đề xuất mã rất phù hợp và Mã VS tự động nhập không gian tên tương ứng khi bạn xác thực một đề xuất
Vô hiệu hóa đề xuất cơ bản
PHP Intelephense cũng có thể tự động đề xuất các phương thức liên quan khi nhập
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
4. Vấn đề là những đề xuất này bị ô nhiễm bởi các đề xuất PHP mặc địnhĐề xuất mã PHP cơ bản mà chúng tôi muốn tắt
Để khắc phục điều đó, bạn có thể tắt các đề xuất cơ bản này trong cài đặt Mã VS. Chỉ cần mở tệp
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
5 của Mã VS [nhấn echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
6 rồi nhấp vào biểu tượng echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
7 ở trên cùng bên phải] và thêm dòng sauecho fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
1Khi hoàn tất, bạn có thể xem các đề xuất hữu ích
Các đề xuất có liên quan khi các đề xuất cơ bản bị tắt
Bật tính năng tự động điền trong nhận xét/chú thích
Khi bạn viết mã PHP, một cách thực hành tốt là thêm các chú thích PHPDoc để làm cho mã của bạn dễ hiểu hơn và giúp IDE của bạn cung cấp cho bạn các đề xuất mã có liên quan. Theo mặc định, Mã VS không đề xuất bất cứ điều gì khi viết chú thích. Để kích hoạt đề xuất mã trong nhận xét, hãy mở tệp
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
5 và thêm dòng sauecho fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
3Gợi ý mã trong chú thích
Cho phép tự động hoàn thành trong các bài kiểm tra
Theo mặc định, PHP Intelephense loại trừ các thư mục kiểm tra Symfony khỏi việc lập chỉ mục vì cài đặt loại trừ mặc định chứa một mẫu quá chung chung
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
4Để bật đề xuất cho các lớp kiểm tra Symfony, tất cả những gì bạn cần làm là chỉnh sửa tệp
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
5 của mình và thêmecho fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
6Như bạn có thể thấy, dòng cuối cùng cụ thể hơn trong cài đặt mặc định
Kết quả 😉
Đã bật hoàn thành mã cho các bài kiểm tra
Chuyển đến định nghĩa
Khi bạn muốn biết thêm thông tin về một chức năng, bạn có thể Ctrl + Nhấp vào chức năng đó và Mã VS sẽ mở dòng nơi chức năng được khai báo
Tạo getters và setters cho thuộc tính lớp
Nếu muốn Mã VS tạo getters và setters cho bạn, bạn có thể cài đặt tiện ích mở rộng này. Sau đó, nhấp chuột phải vào một thuộc tính lớp và chọn Chèn PHP Getter & Setter
Tạo getter và setter
gỡ lỗi
Gỡ lỗi mã PHP của bạn có thể gây khó khăn nếu không có trình gỡ lỗi. Bạn có thể sử dụng
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
10 [😕] nhưng không tiện lắmCách tốt nhất để gỡ lỗi mã PHP của bạn là sử dụng Xdebug, một công cụ lập hồ sơ và trình gỡ lỗi cho PHP
Cài đặt Xdebug
Xdebug không được cung cấp cùng với PHP, bạn cần cài đặt nó trên môi trường phát triển của mình
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
8Sau đó chạy
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
11 và thêm các dòng sauecho fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
0Mẹo. Nếu dự án PHP của bạn chạy trong bộ chứa Docker, bạn cũng cần thêm dòng sau vào tệp
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
12, trong đó echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
13 là địa chỉ IP của giao diện echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
14 trên máy tính của bạn [trên Mac OS, bạn phải đặt echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
15 thay thế]echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
5Kiểm tra xem Xdebug đã được cài đặt thành công hay chưa bằng cách chạy
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
16. Bạn sẽ nhận được một cái gì đó nhưcomposer create-project symfony/website-skeleton my-symfony-website
cd my-symfony-website
code .
bin/console server:run
0Định cấu hình trình gỡ lỗi Mã VS để lắng nghe Xdebug
Để có thể sử dụng Xdebug trong VS Code, bạn cần cài đặt PHP debug extension
Sau đó chuyển đến tab gỡ lỗi trong Mã VS [có thể truy cập trong menu bên] và nhấp vào Thêm cấu hình. Chọn PHP và đóng tệp
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
17 mới tạoĐịnh cấu hình trình gỡ lỗi Mã VS để lắng nghe Xdebug
Mẹo. Nếu dự án PHP của bạn chạy trong bộ chứa Docker, bạn cần thêm ánh xạ đường dẫn sau vào tệp
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
17 trong phần echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
19composer create-project symfony/website-skeleton my-symfony-website
cd my-symfony-website
code .
bin/console server:run
1Môi trường gỡ lỗi của bạn hiện đã sẵn sàng. 🕷🚀
Gỡ lỗi mã của bạn bằng Mã VS
Hãy cùng gỡ lỗi
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
2 của chúng ta để xem đâu là tham số truy vấn do người dùng cung cấp. Bạn có thể sử dụng đoạn mã sau chẳng hạncomposer create-project symfony/website-skeleton my-symfony-website
cd my-symfony-website
code .
bin/console server:run
2Nhấn F5 trong Mã VS để bắt đầu phiên sửa lỗi
Bỏ chọn tùy chọn _Mọi thứ _ trong danh sách điểm dừng và đặt điểm ngắt ở dòng 18 bằng cách nhấp vào bên trái của số dòng. Sau đó truy cập http. //127. 0. 0. 1. 8000/xin chào?tên=Louis. Bây giờ bạn có thể thấy giá trị của các biến cục bộ bằng cách di con trỏ chuột lên chúng
Yêu cầu http. //127. 0. 0. 1. 8000/hello?name=Louis đã tạm dừng trong trình gỡ lỗi
Bạn có thể làm rất nhiều điều tuyệt vời với trình gỡ lỗi 😃, như
- thêm hoặc xóa các điểm dừng
- bước qua, vào hoặc ra
- xem các biến
- đánh giá các biểu thức trong bảng điều khiển gỡ lỗi
Để biết thêm thông tin về sức mạnh của trình gỡ lỗi VS Code, bạn có thể truy cập trang web chính thức
Định cấu hình Xdebug để mở liên kết tệp bằng Mã VS
Khi bạn gặp lỗi hoặc khi bạn sử dụng thanh công cụ gỡ lỗi Symfony hoặc trình lược tả, bạn có thể muốn mở tệp mong muốn trực tiếp trong IDE của mình bằng con trỏ ở dòng tương ứng
Để có thể làm điều đó, bạn cần thêm dòng sau vào _______131 của mình
composer create-project symfony/website-skeleton my-symfony-website
cd my-symfony-website
code .
bin/console server:run
3Mẹo. Nếu bạn chạy PHP trong bộ chứa Docker, bạn có thể chỉ định ánh xạ đường dẫn giữa Máy chủ và docker của mình như thế này
composer create-project symfony/website-skeleton my-symfony-website
cd my-symfony-website
code .
bin/console server:run
4Bây giờ, khi xảy ra lỗi, bạn có thể nhấp vào nó và chuyển thẳng đến dòng tương ứng trong Mã VS
Khi bạn truy cập một tuyến đường, bạn cũng có thể chuyển đến bộ điều khiển tương ứng bằng cách nhấp vào thanh công cụ gỡ lỗi
Định dạng và linting
Định dạng và linting mã của bạn là một cách thực hành rất tốt để giữ cho mã tự động sạch sẽ và để thông báo cho bạn về một số lỗi
Trình sửa lỗi PHP CS
Trình nói dối tốt nhất và thường được sử dụng cho PHP là PHP CS Fixer. Nó cung cấp một số lượng lớn các quy tắc để giữ cho mã của bạn sạch sẽ. Bạn có thể truy cập trang web này để biết thêm thông tin về các quy tắc và danh mục chúng thuộc về
Tích hợp PHP CS Fixer vào Mã VS
Để có thể tự động định dạng các tệp PHP của bạn trong Mã VS, bạn cần cài đặt tiện ích mở rộng trình sửa lỗi php cs
Danh mục quy tắc đầy đủ và an toàn nhất là @PhpCsFixer. Đó là một điểm tốt để bắt đầu. Để bật bộ quy tắc này trong Mã VS, hãy mở
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
5 và thêm dòng saucomposer create-project symfony/website-skeleton my-symfony-website
cd my-symfony-website
code .
bin/console server:run
5Để tự động định dạng các tệp PHP của bạn khi lưu, bạn cũng cần thêm các dòng sau vào
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
5 của mìnhcomposer create-project symfony/website-skeleton my-symfony-website
cd my-symfony-website
code .
bin/console server:run
6Tự động định dạng khi lưu với PHP CS Fixer
Tệp cấu hình PHP CS Fixer
Nếu muốn tắt hoặc bật một số quy tắc linting cụ thể, bạn có thể thực hiện điều đó trong tệp
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
34 tại thư mục gốc của dự án của bạn. Nếu có tệp cấu hình này, Mã VS sẽ tính đến tệp đó và ghi đè cấu hình có trong echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
5. Bạn có thể tìm thêm thông tin về tệp echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
34 trong. Một tệp cấu hình đơn giản để sử dụng danh mục @PhpCsFixer và tắt một số quy tắc có thể làcomposer create-project symfony/website-skeleton my-symfony-website
cd my-symfony-website
code .
bin/console server:run
7Thưởng. thêm Đẹp hơn vào PHP CS Fixer
Prettier for PHP là một trình định dạng mã giúp thực hiện một số cải tiến mà PHP CS Fixer không làm được. Nó cho phép bạn, trong số những thứ khác, định cấu hình độ dài dòng tối đa và làm cho mã của bạn sạch hơn
Để thêm Prettier for PHP vào cấu hình PHP CS Fixer của bạn, bạn có thể làm theo các hướng dẫn sau
Trong trường hợp có vấn đề với định dạng khi lưu
Tùy thuộc vào tốc độ máy tính của bạn, độ dài của tệp và số lượng quy tắc bạn kích hoạt, việc lưu tệp khi lưu có thể bị chậm, khiến Mã VS từ chối tệp đó. Để khắc phục hành vi này, hãy thay đổi định dạngOnSaveTimeout trong
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
5 của bạncomposer create-project symfony/website-skeleton my-symfony-website
cd my-symfony-website
code .
bin/console server:run
8hỗ trợ cành cây
Để kích hoạt tô sáng cú pháp cho các tệp Twig trong Mã VS, bạn cần cài đặt tiện ích mở rộng Twig Language 2
Để bật đề xuất emmet như trong tệp HTML, hãy thêm dòng sau vào
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
5 của bạncomposer create-project symfony/website-skeleton my-symfony-website
cd my-symfony-website
code .
bin/console server:run
9Quản lý cơ sở dữ liệu
Tiện ích mở rộng Mã VS tốt để quản lý cơ sở dữ liệu của bạn là SQLTools. Vui lòng cài đặt nó và quản lý cơ sở dữ liệu của bạn trực tiếp từ IDE của bạn
Tận hưởng mã hóa bằng PHP với Mã VS 🚀 và vui lòng cung cấp cho tôi phản hồi của bạn. 😉
Bạn muốn tìm hiểu thêm về cách Theodo có thể giúp đưa dự án Symfony của bạn lên một tầm cao mới?