Làm cách nào để tạo một lớp php trong mã phòng thu trực quan?

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 ích

Tạ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
3

Cà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 sau

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
1

Khi 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 sau

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
3

Gợ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êm

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
6

Như 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ắm

Cá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
8

Sau đó 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 sau

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
0

Mẹ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
5

Kiể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
19

composer create-project symfony/website-skeleton my-symfony-website
cd my-symfony-website
code .
bin/console server:run
1

Mô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ạn

composer create-project symfony/website-skeleton my-symfony-website
cd my-symfony-website
code .
bin/console server:run
2

Nhấ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
3

Mẹ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
4

Bâ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 sau

composer 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ình

composer create-project symfony/website-skeleton my-symfony-website
cd my-symfony-website
code .
bin/console server:run
6

Tự độ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
7

Thưở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ạn

composer create-project symfony/website-skeleton my-symfony-website
cd my-symfony-website
code .
bin/console server:run
8

hỗ 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ạn

composer create-project symfony/website-skeleton my-symfony-website
cd my-symfony-website
code .
bin/console server:run
9

Quả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?

Làm cách nào để bật PHP trong Visual Studio Code?

Mặc định là lưu. .
Để thay đổi cài đặt PHP, hãy mở Cài đặt người dùng hoặc không gian làm việc [Ctrl+,] và nhập 'php' để lọc danh sách các cài đặt khả dụng
Visual Studio Code bao gồm một tập hợp các đoạn phổ biến cho PHP. .
Có nhiều tiện ích mở rộng ngôn ngữ PHP có sẵn trên VS Code Marketplace và nhiều tiện ích mở rộng khác đang được tạo

Làm cách nào để viết mã PHP trong Mã VS?

Có một cách dễ dàng hơn nhiều để chạy PHP, không cần cấu hình. .
Cài đặt phần mở rộng Code Runner
Mở tệp mã PHP trong Trình soạn thảo văn bản. sử dụng phím tắt Ctrl+Alt+N. hoặc nhấn F1 rồi chọn/gõ Run Code hoặc nhấp chuột phải vào Trình soạn thảo văn bản rồi nhấp vào Run Code trong menu ngữ cảnh của trình soạn thảo

Chủ Đề