Bộ quy tắc Phpc

Nếu bản vá của bạn thay đổi phpc. xml. dist hoặc phpc. xml, nó sẽ chạy PHPCS đối với toàn bộ dự án

Nếu dự án của bạn không có tệp cấu hình phpcs, trình chạy thử nghiệm sẽ sử dụng Composer để yêu cầu phiên bản Coder mới nhất, sau đó chạy PHPCS đối với các tệp đã thay đổi với --standard=Drupal

Và cuối cùng. Nếu dự án của bạn có yêu cầu dựa trên Composer của một phiên bản cụ thể của Coder, trình chạy thử nghiệm sẽ cài đặt phiên bản đó, sau đó chạy PHPCS đối với các tệp đã vá hoặc toàn bộ dự án

Định cấu hình trình chạy thử nghiệm

Nếu bạn muốn ghi đè các tùy chọn mặc định của trình chạy thử, điều này có thể được thực hiện bằng cách chỉnh sửa phần

$ composer require --dev slevomat/coding-standard
7 trong
$ composer require --dev slevomat/coding-standard
8

build:
  assessment:
    validate_codebase:
      phpcs:
        # Whether to sniff all files, or only the files changed in the patch.
        # Defaults to false.
        sniff-all-files: true
        # Whether to terminate the test when coding standards violations are
        # detected. Note that this will not cause the test result to be marked
        # as failed, but it will terminate at the "Build successful" stage.
        # Remaining tests will not run.
        # Defaults to false.
        halt-on-fail: true
        # The version of Coder to use. If omitted, this will default to the
        # version of Coder specified in composer.json, or to the latest version.
        coder-version: '^8.2@stable'

Cách chỉ định các tiêu chuẩn mã hóa Drupal

Trong phpc của dự án của bạn. xml[. dist], bạn nên chỉ định các lần đánh hơi mà bạn muốn là các lần đánh hơi. Thích đoạn này từ dự án Ví dụ dành cho nhà phát triển


  Default PHP CodeSniffer configuration for Examples for Developers.
  .
  
  
  
  
  
      
      
      
      
      
      
  

Các quy tắc được chỉ định bởi tên đánh hơi. Điều này trái ngược với lõi Drupal, chỉ định các quy tắc theo vị trí tệp. Đừng làm điều này. Sử dụng tên đánh hơi

Nếu bạn vẫn muốn có thể chạy PHPCS cục bộ, bạn có thể thêm gói dealerdirect/phpcodesniffer-composer-installer vào phần composer

$ composer require --dev slevomat/coding-standard
9 hoặc thêm phần sau vào phần

  Default PHP CodeSniffer configuration for Examples for Developers.
  .
  
  
  
  
  
      
      
      
      
      
      
  
0 của bạn

Thêm đánh hơi của bên thứ ba

DrupalCI hỗ trợ sẵn các bộ quy tắc sau. Zend, Squiz, PSR2, PSR12, PSR1, PEAR, MySource, DrupalPractice và Drupal. Có thể thêm các lần đánh hơi bổ sung bằng cách đưa bộ quy tắc vào


  Default PHP CodeSniffer configuration for Examples for Developers.
  .
  
  
  
  
  
      
      
      
      
      
      
  
1 và xác định quy tắc trong

  Default PHP CodeSniffer configuration for Examples for Developers.
  .
  
  
  
  
  
      
      
      
      
      
      
  
0. Dưới đây là một ví dụ bổ sung một số quy tắc từ bộ quy tắc slevmat/coding-standard

Đầu tiên, thêm bộ quy tắc vào


  Default PHP CodeSniffer configuration for Examples for Developers.
  .
  
  
  
  
  
      
      
      
      
      
      
  
1

$ composer require --dev slevomat/coding-standard

Sau đó, tùy chỉnh tệp


  Default PHP CodeSniffer configuration for Examples for Developers.
  .
  
  
  
  
  
      
      
      
      
      
      
  
0 của bạn với các quy tắc bạn muốn đưa vào. Ngoài ra, hãy đảm bảo đặt cấu hình

  Default PHP CodeSniffer configuration for Examples for Developers.
  .
  
  
  
  
  
      
      
      
      
      
      
  
3 thành đường dẫn của bộ quy tắc, liên quan đến vị trí cài đặt PHPCS [thường nằm trong thư mục

  Default PHP CodeSniffer configuration for Examples for Developers.
  .
  
  
  
  
  
      
      
      
      
      
      
  
4]

Khi một dự án phát triển, nó trở nên cần thiết để duy trì và thực thi một số tiêu chuẩn được xác định cho mã. Các tiêu chuẩn như vậy giúp đạt được tính đồng nhất, khả năng đọc và khả năng bảo trì, bất kể kỹ sư đã viết mã. Đối với một dự án PHP, một trong những cách tốt nhất để thực thi các tiêu chuẩn đó là PHP_CodeSniffer [viết tắt là PHPCS]

PHPCS là một công cụ giúp phát hiện các hành vi vi phạm các tiêu chuẩn mã hóa được xác định trước. Nó cũng bao gồm một công cụ bổ sung có thể tự động sửa những vi phạm đó

điều kiện tiên quyết

Để hoàn thành hướng dẫn này, bạn chỉ cần cài đặt Composer trên toàn cầu

Về dự án

PHPCS là framework-agnostic, nhưng để đơn giản, chúng ta sẽ sử dụng nó với một dự án Laravel đơn giản. Dự án có tên là “Twilio Greeter”, hiển thị danh sách các lời chào phổ biến tùy thuộc vào ngôn ngữ mà người dùng chọn. Bạn có thể xem mã nguồn đầy đủ tại đây

Các tệp dự án mà chúng tôi quan tâm là

  • $ composer install
    
    7. Bộ điều khiển chính của chúng tôi có phương thức
    $ composer install
    
    8 lấy ngôn ngữ ưa thích từ tham số
    $ composer install
    
    9 và gửi dữ liệu tới dạng xem để hiển thị
  • $ php artisan serve
    
    0. Hiển thị danh sách được truyền vào từ WelcomeController
  • $ php artisan serve
    
    1. Tệp lộ trình dự án của chúng tôi

Bạn có thể tìm hiểu thêm về cách hoạt động của các tệp trên và Laravel nói chung từ tài liệu chính thức của Laravel

Thiết lập dự án

Sao chép ứng dụng lời chào của chúng tôi và thay đổi vào thư mục dự án với


  Default PHP CodeSniffer configuration for Examples for Developers.
  .
  
  
  
  
  
      
      
      
      
      
      
  
1

Tiếp theo, chạy

$ composer install

để cài đặt các phụ thuộc dự án và

$ php artisan serve

để bắt đầu máy chủ. Ứng dụng của chúng tôi hiện có thể truy cập tại

$ php artisan serve
2

Cài đặt PHPCS

Vì mong muốn chạy PHPCS CLI dưới dạng một lệnh độc lập, chúng tôi sẽ cài đặt nó trên toàn cầu bằng lệnh sau


  Default PHP CodeSniffer configuration for Examples for Developers.
  .
  
  
  
  
  
      
      
      
      
      
      
  
5

Bạn có thể kiểm tra cài đặt của mình với


  Default PHP CodeSniffer configuration for Examples for Developers.
  .
  
  
  
  
  
      
      
      
      
      
      
  
6

GHI CHÚ. Nếu bạn gặp lỗi tương tự như “không tìm thấy lệnh”, hãy đảm bảo rằng bạn đã đặt thư mục Composer bin trong PATH của mình [thường là

$ php artisan serve
3 đối với Linux và
$ php artisan serve
4 đối với MacOS]

sở thích của chúng tôi

Ứng dụng của chúng tôi hoạt động tốt sau khi sao chép, nhưng phong cách mã hóa có thể sử dụng một số cải tiến. PHPCS hỗ trợ rất nhiều tiêu chuẩn viết mã như PSR12, PSR2, PEAR và Zend. Bạn cũng có thể tạo các quy tắc của riêng mình nếu tất cả chúng đều mong muốn

Đối với trường hợp sử dụng của chúng tôi, chúng tôi muốn một số quy tắc như

  • Khả năng hiển thị của tất cả các thuộc tính/phương thức phải được khai báo rõ ràng [PHP mặc định hiển thị công khai nếu không được cung cấp]
  • Mở và đóng dấu ngoặc nhọn cho các phương thức phải nằm trên một dòng riêng
  • Các lệnh gọi hàm trải rộng trên nhiều dòng chỉ nên có một đối số trên mỗi dòng e. g


  Default PHP CodeSniffer configuration for Examples for Developers.
  .
  
  
  
  
  
      
      
      
      
      
      
  
9

May mắn thay cho chúng tôi, các tùy chọn của chúng tôi là thông thường và đã được bao phủ bởi tiêu chuẩn PSR12, vì vậy chúng tôi sẽ tiếp tục và sử dụng PSR12 làm cấu hình cơ sở của mình

Định cấu hình PHPCS cho Dự án của chúng tôi

Để bắt đầu, hãy tạo một tệp mới có tên là

$ php artisan serve
5 trong thư mục gốc của dự án với

1

và thêm vào như sau

2

Đoạn mã trên đã được nhận xét để cung cấp một số giải thích, nhưng bạn có thể tra cứu PHPCS wiki để xem các tùy chọn khác nhau mà bạn có thể cung cấp

Chạy thử nghiệm đầu tiên của chúng tôi

Tại thời điểm này, dự án của chúng tôi đã sẵn sàng và chúng tôi có thể kiểm tra các vi phạm ngay bây giờ. Trong thư mục gốc, chạy


  Default PHP CodeSniffer configuration for Examples for Developers.
  .
  
  
  
  
  
      
      
      
      
      
      
  
6

Nếu mọi việc suôn sẻ, bạn sẽ thấy một kết quả tương tự như

4

Sửa chữa khi chúng tôi đi

Báo cáo ở trên bao gồm các tệp và số dòng mà chúng tôi đã vi phạm các quy tắc. Chẳng hạn, chúng ta cần chỉ định khả năng hiển thị của phương thức trên dòng 8 và di chuyển dấu ngoặc mở trên dòng 18 sang một dòng mới

Một lối thoát nhanh sẽ là chạy

$ composer install
0

trong thư mục dự án và PHPCS sẽ tự động cố gắng khắc phục các vi phạm được đánh dấu bằng

$ php artisan serve
6, nhưng hãy cố gắng tự khắc phục chúng

Từ báo cáo của chúng tôi, tệp duy nhất chúng tôi cần xóa là

$ php artisan serve
7, vì vậy hãy mở tệp đó và thực hiện các chỉnh sửa sau. Đầu tiên, chúng tôi thêm một dòng trống giữa dòng 1 và 2 để nó trông giống như sau

$ composer install
1

Sau đó, chúng tôi chỉ định khả năng hiển thị cho phương pháp

$ php artisan serve
8 và di chuyển dấu ngoặc mở sang một dòng mới, vì vậy hãy thay thế

$ composer install
2

với

$ composer install
3

Cuối cùng, chúng tôi đánh dấu phương thức lời chào của mình là

$ php artisan serve
9 [vì chúng tôi không cần gọi nó bên ngoài lớp WelcomeController]. Chúng tôi cũng sẽ di chuyển dấu ngoặc mở của nó sang một dòng mới như sau. Thay thế

$ composer install
4

Với

$ composer install
5

GHI CHÚ. Phiên bản sạch của dự án nằm trên nhánh


  Default PHP CodeSniffer configuration for Examples for Developers.
  .
  
  
  
  
  
      
      
      
      
      
      
  
50 và bạn có thể xem nó bằng cách kiểm tra nhánh gọn gàng như vậy

$ composer install
6

Bây giờ, hãy chạy lại phpc và các lỗi của chúng ta sẽ biến mất

Sự kết luận

Nguyên tắc mã giúp giảm tải nhận thức cần thiết để làm việc trong một dự án có nhiều nhà phát triển và PHPCodeSniffer thực hiện tốt công việc đảm bảo tuân thủ các tiêu chuẩn đặt trước. Nếu bạn đang tìm cách xây dựng các quy tắc tùy chỉnh của riêng mình, thì các bộ quy tắc hiện có là một nơi tốt để bắt đầu

Tôi hy vọng bạn thích bài đăng này và nếu có bất kỳ vấn đề hoặc câu hỏi nào, vui lòng liên hệ với tôi qua Email hoặc trên Github

Chủ Đề