Chào các bạn,
Có lẽ không cần dài dòng, nếu chưa biết gì về coding convention thì mình đã có hẳn một bài viết xịn sò là Chuẩn coding convention trong PHP với PSR, bạn có thể tham khảo nếu thấy cần thiết. Còn trong bài viết này, mình sẽ hướng dẫn bạn cách sử dụng công cụ PHP CodeSniffer để kiểm tra convention tự động khi lập trình PHP.
- I. PHP CodeSniffer là gì?
- II. Cài đặt và sử dụng PHP CodeSniffer
- 2.1 Chuẩn bị
- 2.2 Cài đặt PHP CodeSniffer
- 2.3 Chạy thử PHP CodeSniffer
- III. Lời kết
Vài điểm Hightlight về PHP CodeSniffer như sau:
– PHP CodeSniffer gồm 2 công cụ chính là
composer config --list --global | grep "home"
2, và composer config --list --global | grep "home"
3. Trong đó composer config --list --global | grep "home"
2 là công cụ giúp bạn phát hiện lỗi coding convention, còn composer config --list --global | grep "home"
3 là công cụ giúp bạn tự động tìm và sửa lỗi coding convention – đương nhiên là chỉ sửa được những gì mà nó có thể sửa.– PHP CodeSniffer là một package PHP, có thể cài đặt bằng composer như nhiều package php bình thường khác, nó có thể cài đặt theo từng dự án, hoặc có thể cài global trên máy tính của developer.– PHP CodeSniffer kiểm tra lỗi coding convention dựa trên các PSR, và nếu muốn bạn cũng có thể tự tắt/bật một số quy tắc của PSR để phù hợp với từng dự án, từng team phát triển.– Bạn có thể dễ dàng tích hợp PHP CodeSniffer với các editor phổ biến như Sublime Text, VsCode,… trong bài viết này, mình cũng sẽ hướng dẫn các bạn các tích hợp với VsCode.PHP
CodeSniffer gồm 2 công cụ chính là composer config --list --global | grep "home"
2, và composer config --list --global | grep "home"
3. Trong đó composer config --list --global | grep "home"
2 là công cụ giúp bạn phát hiện lỗi coding convention, còn composer config --list --global | grep "home"
3 là công cụ giúp bạn tự động tìm và sửa lỗi coding convention – đương nhiên là chỉ sửa được những gì mà nó có thể sửa.– PHP CodeSniffer là một package PHP, có thể cài đặt bằng composer như nhiều package php bình thường khác, nó có thể cài đặt theo từng dự án, hoặc có thể cài global trên máy tính của developer.
– PHP CodeSniffer kiểm tra lỗi coding convention dựa trên các PSR, và nếu muốn bạn cũng có thể tự tắt/bật một số quy tắc của PSR để phù hợp với từng dự án, từng team phát triển.
– Bạn có thể dễ dàng tích hợp PHP CodeSniffer với các editor phổ biến như Sublime Text, VsCode,… trong bài viết này, mình cũng sẽ hướng dẫn các bạn các tích hợp với VsCode.
II. Cài đặt và sử dụng PHP CodeSniffer
2.1 Chuẩn bị
- 2.2 Cài đặt PHP CodeSniffer: PHP CodeSniffer được viết bằng PHP, nên máy của bạn chắc chắn cần được cài PHP. Kiểm tra phiên bản PHP bằng cách gõ
6 trên CLI của bạn.composer config --list --global | grep "home"
- 2.3 Chạy thử PHP CodeSniffer: Có nhiều cách để cài đặt PHP CodeSniffer, nhưng bạn
nên cài thông qua Composer cho đơn giản, cũng như dễ dàng cập nhật PHP CodeSniffer khi có phiên bản mới. Mà mình nghĩ chẳng có php developer nào lại không có sẵn composer trên máy đâu. Kiểm tra composer đã có hay chưa bằng cách gõ
7 trên CLI của bạn.composer config --list --global | grep "home"
2.2 Cài đặt PHP CodeSniffer
2.3 Chạy thử PHP CodeSniffer
composer global require "squizlabs/php_codesniffer=*"
III. Lời kết
composer config --list --global | grep "home"
Vài điểm Hightlight về PHP CodeSniffer như sau:
[home] /Users/admin/.composer
– PHP CodeSniffer gồm 2 công cụ chính là
composer config --list --global | grep "home"
2, và composer config --list --global | grep "home"
3. Trong đó composer config --list --global | grep "home"
2 là công cụ giúp bạn phát hiện lỗi coding convention, còn composer config --list --global | grep "home"
3 là công cụ giúp bạn tự động tìm và sửa lỗi coding convention – đương nhiên là chỉ sửa được những gì mà nó có thể sửa.– PHP CodeSniffer là một package PHP, có thể cài đặt bằng composer như nhiều package php bình thường khác, nó có thể cài đặt theo từng dự án, hoặc có thể cài global trên máy tính của developer.– PHP CodeSniffer kiểm tra lỗi coding convention dựa trên các PSR, và nếu muốn bạn cũng có thể tự tắt/bật một số quy tắc của PSR để phù hợp với từng dự án, từng team phát triển.– Bạn có thể dễ dàng tích hợp PHP CodeSniffer với các editor phổ biến như Sublime Text, VsCode,… trong bài viết này, mình cũng sẽ hướng dẫn các bạn các tích hợp với VsCode.PHP 5.4 hoặc phiên bản cao hơn: PHP CodeSniffer được viết bằng PHP, nên máy của bạn chắc chắn cần được cài PHP. Kiểm tra phiên bản PHP bằng cách gõ
composer config --list --global | grep "home"
6 trên CLI của bạn.ls /Users/admin/.composer/vendor/bin
Composer: Có nhiều cách để cài đặt PHP CodeSniffer, nhưng bạn nên cài thông qua Composer cho đơn giản, cũng như dễ dàng cập nhật PHP CodeSniffer khi có phiên bản mới. Mà mình nghĩ chẳng có php developer nào lại không có sẵn composer trên máy đâu. Kiểm tra composer đã có hay chưa bằng cách gõ
composer config --list --global | grep "home"
7 trên CLI của bạn.phpcbf phpcs
2.3 Chạy thử PHP CodeSniffer
III. Lời kết
Vài điểm Hightlight về PHP CodeSniffer như sau:
cd ~ # di chuyển ra thư mục root
mkdir test_php_sniffer # tạo thư mục test_php_sniffer
cd test_php_sniffer # di chuyển vào thư mục vừa tạo
touch test.php # tạo file test.php
– PHP CodeSniffer gồm 2 công cụ chính là
composer config --list --global | grep "home"
2, và composer config --list --global | grep "home"
3. Trong đó composer config --list --global | grep "home"
2 là công cụ giúp bạn phát hiện lỗi coding convention, còn composer config --list --global | grep "home"
3 là công cụ giúp bạn tự động tìm và sửa lỗi coding convention – đương nhiên là chỉ sửa được những gì mà nó có thể sửa.– PHP CodeSniffer là một package PHP, có thể cài đặt bằng composer như nhiều package php bình thường khác, nó có thể cài đặt theo từng dự án, hoặc có thể cài global trên máy tính của developer.– PHP CodeSniffer kiểm tra lỗi coding convention dựa trên các PSR, và nếu muốn bạn cũng có thể tự tắt/bật một số quy tắc của PSR để phù hợp với từng dự án, từng team phát triển.– Bạn có thể dễ dàng tích hợp PHP CodeSniffer với các editor phổ biến như Sublime Text, VsCode,… trong bài viết này, mình cũng sẽ hướng dẫn các bạn các tích hợp với VsCode.PHP 5.4 hoặc phiên bản cao hơn: PHP CodeSniffer được viết bằng PHP, nên máy của bạn chắc chắn cần được cài PHP. Kiểm tra phiên bản PHP bằng cách gõ
composer config --list --global | grep "home"
6 trên CLI của bạn.Composer: Có nhiều cách để cài đặt PHP CodeSniffer, nhưng bạn nên cài thông qua Composer cho đơn giản, cũng như dễ dàng cập nhật PHP CodeSniffer khi có phiên bản mới. Mà mình nghĩ chẳng có php developer nào lại không có sẵn composer trên máy đâu. Kiểm tra composer đã có hay chưa bằng cách gõ
composer config --list --global | grep "home"
7 trên CLI của bạn.cd test_php_sniffer # di chuyển vào thư mục chứa file test.php
/Users/admin/.composer/vendor/bin/phpcs test.php # chạy này
Như mình đã trình bày, CodeSniffer có thể cài global hoặc cài theo từng dự án, trong bài viết này mình sẽ cài global luôn cho máu.
FILE: /Users/admin/test_php_sniffer/test.php -------------------------------------------------------------------------- FOUND 5 ERRORS AFFECTING 3 LINES -------------------------------------------------------------------------- 2 | ERROR | [ ] You must use "/**" style comments for a file comment 4 | ERROR | [ ] You must use "/**" style comments for a function comment 4 | ERROR | [x] Expected 0 spaces before opening parenthesis; 1 found 4 | ERROR | [x] Opening brace should be on a new line 8 | ERROR | [x] No space found after comma in argument list -------------------------------------------------------------------------- PHPCBF CAN FIX THE 3 MARKED SNIFF VIOLATIONS AUTOMATICALLY -------------------------------------------------------------------------- Time: 51ms; Memory: 4MB
Sau khi cài xong, bạn cần tìm được thư mục home của composer, tùy vào từng hệ điều hành mà đường dẫn tới thư mục home sẽ khác nhau. Để tìm thư mục home, bạn chạy lệnh sau:
- Kết quả sẽ dạng như sau:
- Thì
8 chính là thư mục home của composer.composer config --list --global | grep "home"
Bước tiếp theo, cùng kiểm tra xem PHP CodeSniffer đã được cài đặt hay chưa, bằng cách chạy lệnh sau:
/Users/admin/.composer/vendor/bin/phpcbf test.php
Nếu cài đặt thành công, thì sẽ có kết quả như sau:
Tạo trước một file PHP và cố tình code sai convention, để thử xem thằng PHP CodeSniffer có nhận ra hay không.
- Copy nội dung sau bỏ vào file test.php