Đây là một tập hợp các trình đánh hơi cho PHP CodeSniffer để kiểm tra khả năng tương thích giữa các phiên bản PHP. Nó sẽ cho phép bạn phân tích mã của mình để tương thích với các phiên bản PHP cao hơn và thấp hơn
Hỗ trợ phiên bản PHP
Dự án nhằm mục đích bao gồm tất cả các thay đổi về khả năng tương thích PHP được giới thiệu kể từ PHP 5. 0 cho đến phiên bản PHP mới nhất. Đây là một quá trình đang diễn ra và mức độ phù hợp chưa phải là 100% [nếu thực sự có thể xảy ra]. Tiến trình được theo dõi trên trình theo dõi vấn đề GitHub của chúng tôi
Các yêu cầu kéo kiểm tra các vấn đề tương thích trong mã PHP 4 - đặc biệt là giữa PHP 4 và PHP 5. 0 - rất được hoan nghênh vì vẫn có những trường hợp mọi người cần trợ giúp nâng cấp các hệ thống cũ. Tuy nhiên, phạm vi bảo hiểm cho các thay đổi được giới thiệu trước PHP 5. 1 sẽ vẫn còn chắp vá vì các phần mềm đánh hơi cho điều này không được phát triển tích cực vào thời điểm này
Yêu cầu
- PHP5. 4+
- Mã PHPSniffer. 3. 7. 1+
Các trình thám thính được thiết kế để cho kết quả giống nhau bất kể bạn đang sử dụng phiên bản PHP nào để chạy PHP CodeSniffer. Bạn sẽ nhận được kết quả nhất quán độc lập với phiên bản PHP được sử dụng trong môi trường thử nghiệm của mình, mặc dù vậy, để có kết quả tốt nhất, bạn nên chạy trình khám phá trên phiên bản PHP gần đây kết hợp với phiên bản PHP_CodeSniffer gần đây
Kể từ phiên bản 8. 0. 0, tiêu chuẩn Tương thích PHP cũng có thể được sử dụng với PHP CodeSniffer 3. x. Kể từ phiên bản 9. 0. 0, hỗ trợ PHP CodeSniffer 1. 5. x và thấp 2. phiên bản x < 2. 3. 0 đã bị loại bỏ. Kể từ phiên bản 10. 0. 0, hỗ trợ cho PHP
./vendor/bin/phpcs -p . --standard=PHPCompatibility
Cài đặt thông qua kiểm tra git vào một thư mục tùy ý [phương pháp 2]
Cài đặt PHP CodeSniffer qua
PHP CodeSniffer cung cấp nhiều phương thức cài đặt phù hợp với quy trình làm việc của bạn. Trình soạn thảo, PEAR, tệp Phar, kho lưu trữ bản phát hành được nén/tarred hoặc kiểm tra kho lưu trữ bằng Git
tiền boa. Đăng ký đường dẫn đến PHPCS trong biến môi trường
3 hệ thống của bạn để làm cho lệnh 4 có sẵn từ mọi nơi trong hệ thống tệp của bạnTải xuống bản phát hành PHPCompatibility mới nhất và giải nén/gỡ bỏ nó vào một thư mục tùy ý
Bạn cũng có thể chọn sao chép kho lưu trữ bằng git để dễ dàng cập nhật cài đặt của mình thường xuyên
Thêm đường dẫn đến thư mục mà bạn đã đặt bản sao của repo PHPCompatibility vào cấu hình PHP CodeSniffer bằng lệnh bên dưới từ dòng lệnh
phpcs --config-set installed_paths /path/to/PHPCompatibility
I. e. nếu bạn đã đặt kho lưu trữ
"scripts": { "post-install-cmd": "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility", "post-update-cmd" : "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility" }
3 trong thư mục 6, bạn sẽ cần thêm thư mục đó vào PHP CodeSnifferCảnh báo. ⚠️Lệnh
7 sẽ ghi đè bất kỳ lệnh 7 nào đã đặt trước đó. Nếu trước đó bạn đã đặt ____10_______7 cho các tiêu chuẩn bên ngoài khác, hãy chạy _____13_______1 trước rồi chạy lệnh _______10_______7 với tất cả các đường dẫn bạn cần được phân tách bằng dấu phẩy, i. ephpcs --config-set installed_paths /path/1,/path/2,/path/3
tiền boa. Ngoài ra, trong trường hợp bạn sử dụng bộ quy tắc tùy chỉnh, bạn có thể cho PHP CodeSniffer biết đường dẫn đến [các] tiêu chuẩn Tương thích PHP bằng cách thêm đoạn mã sau vào bộ quy tắc tùy chỉnh của bạn
Xác minh rằng tiêu chuẩn Tương thích PHP được đăng ký chính xác bằng cách chạy
./vendor/bin/phpcs -p . --standard=PHPCompatibility
3 trên dòng lệnh. PHPCompatibility nên được liệt kê là một trong những tiêu chuẩn có sẵnBây giờ bạn có thể sử dụng lệnh sau để kiểm tra mã của mình
phpcs -p . --standard=PHPCompatibility
Đánh hơi mã của bạn để tương thích với [các] phiên bản PHP cụ thể
- Chạy tiêu chuẩn mã hóa từ dòng lệnh với
./vendor/bin/phpcs -p . --standard=PHPCompatibility
4 - Theo mặc định, bạn sẽ chỉ nhận được thông báo về các tính năng PHP không dùng nữa và/hoặc bị xóa
- Để tận dụng tối đa tiêu chuẩn Tương thích PHP, bạn nên chỉ định một
"scripts": { "post-install-cmd": "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility", "post-update-cmd" : "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility" }
2 để kiểm tra lại. Điều đó sẽ cho phép kiểm tra cả các tính năng PHP bị loại bỏ/không dùng nữa cũng như phát hiện mã bằng các tính năng PHP mới- Bạn có thể chạy kiểm tra cho chỉ một phiên bản PHP cụ thể bằng cách thêm
./vendor/bin/phpcs -p . --standard=PHPCompatibility
6 vào lệnh dòng lệnh của bạn - Bạn cũng có thể chỉ định một loạt các phiên bản PHP mà mã của bạn cần hỗ trợ. Trong tình huống này, các sự cố tương thích ảnh hưởng đến bất kỳ phiên bản PHP nào trong phạm vi đó sẽ được báo cáo.
./vendor/bin/phpcs -p . --standard=PHPCompatibility
7 - Kể từ PHPCompatibility 7. 1. 3, bạn có thể bỏ qua một phần của phạm vi nếu bạn muốn hỗ trợ mọi thứ trên hoặc dưới một phiên bản cụ thể, tôi. e. sử dụng
./vendor/bin/phpcs -p . --standard=PHPCompatibility
8 để chạy tất cả các kiểm tra cho PHP 7. 0 trở lên
- Bạn có thể chạy kiểm tra cho chỉ một phiên bản PHP cụ thể bằng cách thêm
- Theo mặc định, báo cáo sẽ được gửi đến bàn điều khiển, nếu bạn muốn lưu báo cáo vào một tệp, hãy thêm phần sau vào lệnh dòng lệnh.
./vendor/bin/phpcs -p . --standard=PHPCompatibility
9. Để biết thêm thông tin và các tùy chọn báo cáo khác, hãy xem PHP CodeSniffer wiki
Sử dụng bộ quy tắc cụ thể của framework/CMS/polyfill
Kể từ giữa năm 2018, một bộ giới hạn các bộ quy tắc dành riêng cho khung/CMS đã có sẵn. Các bộ quy tắc này được lưu trữ trong kho lưu trữ riêng của chúng
phpcs --config-set installed_paths /path/to/PHPCompatibility
0 GitHub. người đóng góiphpcs --config-set installed_paths /path/to/PHPCompatibility
1 GitHub. người đóng gói
Kể từ mùa thu năm 2018, cũng có sẵn một số bộ quy tắc cụ thể cho polyfill PHP
phpcs --config-set installed_paths /path/to/PHPCompatibility
2 GitHub. người đóng gói. tài khoản cho thư viện polyfillphpcs --config-set installed_paths /path/to/PHPCompatibility
3 của @ircmaxellphpcs --config-set installed_paths /path/to/PHPCompatibility
4 GitHub. người đóng gói. chứa hai bộ quy tắc chiếm các thư viện polyfill Paragoniephpcs --config-set installed_paths /path/to/PHPCompatibility
5 vàphpcs --config-set installed_paths /path/to/PHPCompatibility
6 tương ứngphpcs --config-set installed_paths /path/to/PHPCompatibility
7 GitHub. người đóng gói. chứa một số bộ quy tắc chiếm các thư viện polyfill PHP khác nhau do dự án Symfony cung cấp. Để biết thêm chi tiết về các bộ quy tắc có sẵn, vui lòng xem README của kho lưu trữ PHPCompatibilitySymfony
Nếu bạn muốn đảm bảo rằng bạn luôn có sẵn tất cả các bộ quy tắc Tương thích PHP, bạn có thể sử dụng gói GitHub
phpcs --config-set installed_paths /path/to/PHPCompatibility8. người đóng gói
QUAN TRỌNG. Các bộ quy tắc cụ thể của Framework/CMS/Polyfill không đặt phiên bản PHP tối thiểu cho dự án của bạn, vì vậy bạn vẫn cần phải vượt qua
"scripts": { "post-install-cmd": "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility", "post-update-cmd" : "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility" }2 để có được kết quả chính xác nhất
Sử dụng bộ quy tắc tùy chỉnh
Giống như bất kỳ tiêu chuẩn PHP CodeSniffer nào, bạn có thể thêm PHPCompatibility vào bộ quy tắc PHP CodeSniffer tùy chỉnh
My rules for PHP CodeSniffer
Bạn cũng có thể đặt
"scripts": { "post-install-cmd": "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility", "post-update-cmd" : "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility" }2 từ trong bộ quy tắc
Tất nhiên, các tùy chọn nâng cao khác, chẳng hạn như thay đổi loại thông báo hoặc mức độ nghiêm trọng của các lần đánh hơi được chọn, như được mô tả trong trang wiki Bộ quy tắc chú thích PHPCS, cũng được hỗ trợ
"scripts": {
"post-install-cmd": "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility",
"post-update-cmd" : "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility"
}
2 trong bộ quy tắc so với dòng lệnh
Trong PHPCS 3. 2. 0 trở xuống, một khi bạn đặt
"scripts": { "post-install-cmd": "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility", "post-update-cmd" : "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility" }2 trong bộ quy tắc, bạn không thể ghi đè nó từ dòng lệnh nữa. Bắt đầu với PHPCS 3. 3. 0, một
"scripts": { "post-install-cmd": "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility", "post-update-cmd" : "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility" }2 được đặt qua dòng lệnh sẽ ghi đè lên
"scripts": { "post-install-cmd": "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility", "post-update-cmd" : "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility" }2 trong bộ quy tắc
Điều này cho phép linh hoạt hơn khi, ví dụ, dự án của bạn cần tuân thủ PHP
phpcs --config-set installed_paths /path/1,/path/2,/path/35, nhưng bạn có tệp bootstrap cần tương thích với PHP
phpcs --config-set installed_paths /path/1,/path/2,/path/36
Các tùy chọn cụ thể về khả năng tương thích PHP
Tại thời điểm này, có hai lần đánh hơi có thuộc tính có thể được đặt thông qua bộ quy tắc. Nhiều thuộc tính tùy chỉnh hơn có thể có sẵn trong tương lai
phpcs --config-set installed_paths /path/1,/path/2,/path/37 kiểm tra các tiện ích mở rộng đã xóa dựa trên tiền tố chức năng được sử dụng cho các tiện ích mở rộng này. Điều này có thể xung đột với các chức năng vùng người dùng sử dụng cùng tiền tố chức năng
Để liệt kê các hàm vùng người dùng trong danh sách trắng, bạn có thể chuyển danh sách tên hàm được phân tách bằng dấu phẩy cho trình thám thính
"scripts": { "post-install-cmd": "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility", "post-update-cmd" : "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility" }0
Người đánh hơi
phpcs --config-set installed_paths /path/1,/path/2,/path/38 cần biết về tất cả các giao diện mở rộng giao diện
phpcs --config-set installed_paths /path/1,/path/2,/path/39 để cung cấp kết quả đáng tin cậy nhất. Trình đánh hơi sẽ cảnh báo khi gặp giao diện mở rộng giao diện
phpcs --config-set installed_paths /path/1,/path/2,/path/39 mà trình đánh hơi không biết và đề xuất thêm tên giao diện vào thuộc tính
Để thông báo cho trình thám thính về các giao diện bổ sung cung cấp giao diện Có thể tuần tự hóa, hãy thêm một đoạn mã dọc theo các dòng bên dưới vào bộ quy tắc tùy chỉnh của bạn
"scripts": { "post-install-cmd": "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility", "post-update-cmd" : "\"vendor/bin/phpcs\" --config-set installed_paths vendor/phpcompatibility/php-compatibility" }1
Các dự án mở rộng PHPCompatibility
Có hàng trăm dự án công khai sử dụng PHPCompatibility hoặc mở rộng trên nó. Một danh sách ngắn của một số mà bạn có thể biết hoặc đã xem qua
- adamculp/php-code-quality - một hình ảnh Docker thực hiện nhiều kiểm tra chất lượng mã
- VFAC/PHP7Compatibility - một Docker container để kiểm tra khả năng tương thích PHP7
- grumphp-php-compatibility - Một plugin cho GrumPHP
- Trình kiểm tra tương thích PHP plugin WordPress. Trang web Wordpress và Github
- Dự án thủy triều WordPress
- Trình kiểm tra mã Moodle - Một plugin cho phong cách mã hóa Moodle, bao gồm PHPCompatibility
- Github Action - Một Github Action chạy tiêu chuẩn PHPCS này trên mã nguồn của bạn
Đóng góp
Đóng góp rất được hoan nghênh. Vui lòng đọc tài liệu ĐÓNG GÓP để bắt đầu
Giấy phép
Mã này được phát hành theo Giấy phép Công cộng Ít hơn GNU [LGPL]. Để biết thêm thông tin, hãy truy cập http. //www. gnu. org/copyleft/ít hơn. html