Nếu bạn là lập trình viên PHP thì đây là một extension nhất thiết phải có vì nó giúp bạn làm đẹp code, nhìn vào sẽ gọn gàn và dễ debug hơn,… Nội dung chínhTại sao phải cài PHP-CS-Fixer cho VS Code?
Hướng dẫn cài đặt PHP-CS-Fixer cho VS Code
Ban đầu mình cũng gà nên việc cài đặt và cấu hình nó khá là lu bu, nhưng khi nó đã work rồi thì vô cùng đơn giản và mình muốn chia sẽ sự đơn giản đó cho các bạn.
[!] Hướng dẫn này được thực hiện trên Windows, mọi thứ bạn cần có bây giờ là.
- Cài đặt Composer. Link cài đặt
- Cài đặt VS Code. Link tải về
- Mở VS Code truy cập Extension và tìm đến php cs fixer => chọn Install. [Link Marketplace]
- Mở cmd hoặc Terminal gõ lệnh cài đặt php-cs-fixer toàn cục.
composer global require friendsofphp/php-cs-fixer
Khi cài đặt mặc định nó sẽ nằm trong đường dẫn như sau:
C:\Users\[USERNAME]\AppData\Roaming\Composer\vendor
- Cấu hình extension. Mở settings.json và dán cấu hình sau vào bên dưới, thay đổi USERNAME của bạn lại nữa nhé.
"[php]": {
"editor.formatOnSave": false, //muốn auto format khi save thì set true
"editor.defaultFormatter": "junstyle.php-cs-fixer",
},
"php-cs-fixer.exclude": [
],
"php-cs-fixer.executablePath": "${extensionPath}/php-cs-fixer.phar",
"php-cs-fixer.onsave": false,
"php-cs-fixer.rules": "@PSR12",
"php-cs-fixer.config": "C:/Users/[USERNAME]/AppData/Roaming/Composer/vendor/bin/config.php_cs",
"php-cs-fixer.allowRisky": false,
"php-cs-fixer.pathMode": "override",
"php-cs-fixer.autoFixByBracket": true,
"php-cs-fixer.autoFixBySemicolon": false,
"php-cs-fixer.formatHtml": true,
"php-cs-fixer.documentFormattingProvider": true,
"php-cs-fixer.executablePathWindows": "php-cs-fixer.bat",
Trong cài đặt này có mục “php-cs-fixer.allowRisky”: false, đây là cài đặt cho phép thay đổi && thành “and”; || thành “or” điều này có thể phá vỡ cấu trúc code của bạn nên hãy để nó là false.
Đây là cài đặt của mình4. Tải file config.php_cs chép vào thư mục bin của composer hoặc bất kỳ thư mục nào bạn thích, do cài đặt ở trên mình để trong thư mục “bin” nên mình sẽ chép vào đó.
5. Khởi động lại VS Code sau đó mở một file php lên tiến hành kiểm tra format đã ổn chưa bằng cách nhấn ALT + SHIFT + F hoặc Chuột phải => Format Document.
Nếu bạn nhìn thấy php-cs-fixer is formatting and finishing ở thanh trạng thái là mọi thứ đã ổn rồi đấy.
Bạn có thể chỉnh sửa các rule trong file config.php_cs theo rule này nhé.
Hy vọng hướng dẫn này hữu ích cho bạn và giúp bạn tiết kiệm hàng giờ cố gắng tìm ra cách cài đặt nếu bạn là người mới sử dụng PHP-CS-Fixer. Hãy cho tôi biết trong phần nhận xét về cách bạn cài đặt PHP-CS-Fixer.
Tham khảo
- //github.com/junstyle/vscode-php-cs-fixer
- //medium.com/@armorasha/php-cs-fixer-how-to-install-vs-code-2020-windows-10-75b6d5ed03ce
Nếu bạn muốn gặp các vấn đề với code convention và loay hoay tìm một công cụ nào đó hiệu quả giúp bạn tự động kiểm tra, auto fix các lỗi đó, thì bạn hãy ...... lên Google để tìm kiếm giải pháp. Bài viết sau cũng là một gợi ý =]]
PHP CodeSniffer
PHP_CodeSniffer là tập gồm 2 script PHP, với script chính là
phpcs
mã hóa các tệp PHP, Javascript và CSS để phát hiện cú pháp tiêu chuẩn coding nhất định, và script thứ 2phpcbf
tự động sửa các vi phạm tiêu chuẩn code đó. PHP_CodeSniffer là một công cụ phát triển cần thiết để đảm bảo code của bạn nhất quán và sạch sẽ
Cài đặt
Có rất nhiều cách cài đặt PHPCS, bạn có thể sử dụng 1 số cách sau:
Globally [manual]
Cách đơn giản nhất để bắt đầu với PHP_CodeSniffer
là download các file Phar và chạy trưc tiếp
# Download using curl
curl -OL //squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
curl -OL //squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar
# Or download using wget
wget //squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
wget //squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar
# Then test the downloaded PHARs
php phpcs.phar -h
php phpcbf.phar -h
Globally [composer]
Cài đặt qua Composer, bạn có thể cài dưới dạng global [system-wide]
composer global require "squizlabs/php_codesniffer=*"
Sau đó hãy chắc chắn rằng thư mục bin của composer đã trong PATH của bạn. Giá trị mặc định của thư mục này là ~/.composer/vendor/bin/
, nhưng bạn có thể check giá trị bạn
cần sử dụng bằng lệnh:
composer global config bin-dir --absolute
Đối với bash thì file đó là .bashrc ở thư mục home từ là
~/.bashrc
, với zsh là file~/.zshrc.
Mình dùng zsh
nên sẽ thêm vào file .zshrc
vi .zshrc
Thêm dòng này vào nha:
export PATH=~/.composer/vendor/bin/:$PATH
Sau đó kiểm tra lại bằng echo $PATH
ra xem đã có chưa:
.../home/nguyen.van.minhb/.composer/vendor/bin/:....
Locally
Nếu chỉ cần cài cho project, bạn có thể install trong phạm vi project
composer require "squizlabs/php_codesniffer=*"
Hoặc cập nhật file composer.json
của bạn
{
"require-dev": {
"squizlabs/php_codesniffer": "3.*"
}
}
Lúc này bạn đã có thể chạy phpcs dựa trên đường dẫn vendor trong project
./vendor/bin/phpcs -h
./vendor/bin/phpcbf -h
Sử dụng
Để sử dụng, khá đơn giản, sử dụng lệnh phpcs
kết hợp file, thư mục bạn muốn kiểm tra:
# Check cú pháp với file
$ phpcs /path/to/code/myfile.php
# Check cú pháp với thư mục
$ phpcs /path/to/code-directory
# Check cú pháp với các tùy chọn config
$ phpcs --standard=PSR2 /path/to/code-directory
Một vài tùy chọn khá hữu ích bạn nên thêm trong quá trình sử dụng
-n Do not print warnings [shortcut for --warning-severity=0]
-p Show progress of the run
-m Stop error messages from being recorded
[saves a lot of memory, but stops many reports from being used]
-v Print processed files
Nếu bạn không muốn hiển thị các warning
$ phpcs -n /path/to/code/myfile.php
FILE: /path/to/code/myfile.php
--------------------------------------------------------------------------------
FOUND 5 ERROR[S] AFFECTING 5 LINE[S]
--------------------------------------------------------------------------------
2 | ERROR | Missing file doc comment
20 | ERROR | PHP keywords must be lowercase; expected "false" but found "FALSE"
47 | ERROR | Line not indented correctly; expected 4 spaces but found 1
51 | ERROR | Missing function doc comment
88 | ERROR | Line not indented correctly; expected 9 spaces but found 6
--------------------------------------------------------------------------------
Và bạn nên sử dụng như vậy
./vendor/bin/phpcs -np /path/to/code-directory
Và fix lỗi convention
./vendor/bin/phpcbf -np /path/to/code-directory
Config
Bạn hoàn toàn cấu hình các chuẩn kiểm tra code mà bạn muốn, như sử dụng tab hay space, check các thư muc nào, ignore những file nào, chuẩn nào. Sau khi setting PHPCS, mặc định nó sẽ sử dụng điều kiện PEAR, chuẩn này đã cũ, bạn có thể thay đổi điều này bằng cách sử dụng các standard của công ty Framgia hoặc PRS2
phpcs --config-set default_standard PSR2
// Kiểm tra việc setting config
phpcs --config-show
Cách thay đổi config như vậy KHÔNG KHUYẾN KHÍCH, thay vào đó bạn nên setup phpcs
cho từng project của bạn, sử dụng các file .phpcs.xml, phpcs.xml, .phpcs.xml.dist, phpcs.xml.dist
.
Cài đặt Framgia PHP Standards
Các tiêu chuẩn check code
của PHPCS được đặt trong thư mục ~/.composer/vendor/squizlabs/php_codesniffer/src/Standards
. Vì vậy nếu bạn muốn thêm 1 tiêu chuẩn check code, bạn chỉ cần clone nó vào thư mục này:
// Version 2
cd ~/.composer/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards
git clone -b 0.2 :wataridori/framgia-php-codesniffer.git Framgia
// Version 3
cd ~/.composer/vendor/squizlabs/php_codesniffer/src/Standards
git clone :wataridori/framgia-php-codesniffer.git Framgia
Sử dụng:
phpcs --standard=Framgia /path/to/your/code
Khá đơn giản nhỉ
Tích hợp PHPCS vào Sublime text 3
Công việc tiếp theo là bạn nên tích hợp việc check cú pháp này trực tiếp vào các editor để tự động phát hiện
lỗi, thay vì cột 1 mạch và lại chạy lệnh phpcs
=]]
Bạn cần cài 2 package trong Subime Text để được hỗ trợ việc này
Sublime Linter [package cha]
SublimeLinter-phpcs [package con, các phần nhỏ của Linter]
Khởi động lại Sublime Text luôn để tận hưởng chức năng siêu mới này nhé :v [khởi động bằng lệnh mới được ý @@]
cd project_path
subl .
Tích hợp PHPCS vào PHPStorm
Để tích hợp check phpcs và các tiêu chuẩn vào PHPStorm, bạn cài đặt theo đường dẫn.
FIle => Setting => Editor => Inspections => PHP => PHP Code sniffer validation [Có thể ở trong Quality tools]
Sau đó bạn lựa chọn các cài đặt, hiển thị lỗi ở mức warning hay error và chọn Coding standard
PHP Coding Standards Fixer
The PHP Coding Standards Fixer [PHP CS Fixer] là một công cụ sửa code của bạn theo các chuẩn, cho dù bạn tuân theo các tiêu chuẩn mã hóa PHP được định nghĩa trong PSR-1, PSR-2, v.v. hay các tiêu chuẩn do cộng đồng khác như Symfony. Bạn cũng có thể xác định các style cho team của mình thông qua các cấu hình
Cài đặt
Locally
Siêu đơn giản, tải cái file php-cs-fixer.phar về rồi chạy luôn
Globally [manual]
Đầu tiên bạn tải nó về
$ wget //cs.symfony.com/download/php-cs-fixer-v2.phar -O php-cs-fixer
Vẫn là tải nhưng xác định thêm version
$ wget //github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.16.1/php-cs-fixer.phar -O php-cs-fixer
Cũng là tải nhưng dùng lệnh khác
$ curl -L //cs.symfony.com/download/php-cs-fixer-v2.phar -o php-cs-fix![][//images.viblo.asia/09a62f3a-64c5-4551-9fdc-a16e49fbfc71.gif]
er
Then:
$ sudo chmod a+x php-cs-fixer
$ sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer
End,
xong rồi đó, test thôi php-cs-fixer --version
Globally [Composer]
Đầu tiên bạn cũng tải nó dưới dạng global
$ composer global require friendsofphp/php-cs-fixer
Thêm vào PATH như phpcs
$ export PATH="$PATH:$HOME/.composer/vendor/bin"
Xong!
Sử dụng
Không khác phpcs
là mấy :v
$ php php-cs-fixer.phar fix /path/to/dir
$ php php-cs-fixer.phar fix /path/to/file
$ php php-cs-fixer.phar fix /path/to/project --rules=@PSR2
See usage, list of built-in rules, list of rule sets and configuration file documentation for more details.
If you need to apply code styles that are not supported by the tool, you can create custom rules
Tích hợp vào Sublime Text 3
Package: PHP CS Fixer
Sử dụng
Sau khi đã cài thành công rồi, mỗi lần file bạn bị lỗi, bạn sử dụng như sau: Ctrl + Shift + P và Tìm kiếm PHP CS Fixer. Thậm chí bạn có thể nhìn thấy tổ hợp phím tắt của nó không, ấn luôn nếu bạn đang ở file lỗi đó cho ngầu như quả bầu
[trường hợp này là Ctrl + Alt + F]OK, cool ngầu nào
[JS có Prettier thì phải :3]