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à composer global config bin-dir --absolute 5 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ứ 2 composer global config bin-dir --absolute 6 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 composer global config bin-dir --absolute 7 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 -hGlobally (composer)
Cài đặt qua Composer, bạn có thể cài dưới dạng global (system-wide)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 global config bin-dir --absolute 8, 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à composer global config bin-dir --absolute 9, với zsh là file vi .zshrc 0
Mình dùng vi .zshrc 1 nên sẽ thêm vào file vi .zshrc 2
vi .zshrcThêm dòng này vào nha:
export PATH=~/.composer/vendor/bin/:$PATHSau đó kiểm tra lại bằng vi .zshrc 3 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 vi .zshrc 4 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 -hSử dụng
Để sử dụng, khá đơn giản, sử dụng lệnh composer global config bin-dir --absolute 5 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-directoryMột vài tùy chọn khá hữu ích bạn nên thêm trong quá trình sử dụng
composer global require "squizlabs/php_codesniffer=*" 0Nếu bạn không muốn hiển thị các warning
composer global require "squizlabs/php_codesniffer=*" 1Và bạn nên sử dụng như vậy
composer global require "squizlabs/php_codesniffer=*" 2Và fix lỗi convention
composer global require "squizlabs/php_codesniffer=*" 3Config
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
composer global require "squizlabs/php_codesniffer=*" 4Cách thay đổi config như vậy KHÔNG KHUYẾN KHÍCH, thay vào đó bạn nên setup composer global config bin-dir --absolute 5 cho từng project của bạn, sử dụng các file vi .zshrc 7.KHÔNG KHUYẾN KHÍCH, thay vào đó bạn nên setup composer global config bin-dir --absolute 5 cho từng project của bạn, sử dụng các file vi .zshrc 7.
Cài đặt Framgia PHP Standards
Các tiêu chuẩn check code của PHPCS được đặt trong thư mục vi .zshrc 8. 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:
composer global require "squizlabs/php_codesniffer=*" 5Sử dụng:
composer global require "squizlabs/php_codesniffer=*" 6Khá đơ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 composer global config bin-dir --absolute 5 =))
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 ý @@)(khởi động bằng lệnh mới được ý @@)
composer global require "squizlabs/php_codesniffer=*" 7Tí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 standardwarning 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
Nếu chỉ cần cài cho project, bạn có thể install trong phạm vi project
Globally (manual)
Cách đơn giản nhất để bắt đầu với composer global config bin-dir --absolute 7 là download các file Phar và chạy trưc tiếp
composer global require "squizlabs/php_codesniffer=*" 8Globally (composer)
composer global require "squizlabs/php_codesniffer=*" 9Cài đặt qua Composer, bạn có thể cài dưới dạng global (system-wide)
composer global config bin-dir --absolute 0Then:
composer global config bin-dir --absolute 1Sau đó 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 global config bin-dir --absolute 8, nhưng bạn có thể check giá trị bạn cần sử dụng bằng lệnh:
Đối với bash thì file đó là .bashrc ở thư mục home từ là composer global config bin-dir --absolute 9, với zsh là file vi .zshrc 0
Mình dùng vi .zshrc 1 nên sẽ thêm vào file vi .zshrc 2
composer global config bin-dir --absolute 2Thêm dòng này vào nha:
composer global config bin-dir --absolute 3Xong!
Sử dụng
Để sử dụng, khá đơn giản, sử dụng lệnh composer global config bin-dir --absolute 5 kết hợp file, thư mục bạn muốn kiểm tra:
composer global config bin-dir --absolute 4Mộ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ếu bạn không muốn hiển thị các warning
Và bạn nên sử dụng như vậy
Và fix lỗi convention
Sử dụng
Để sử dụng, khá đơn giản, sử dụng lệnh composer global config bin-dir --absolute 5 kết hợp file, thư mục bạn muốn kiểm tra:
OK, cool ngầu nào