Konfiguracja GitHub Actions do automatycznej weryfikacji zgodności z WPCS: poradnik dla PHP i WordPressa
This guide explains how to set up GitHub Actions to automatically verify your PHP code against WordPress Coding Standards (WPCS) using PHP versions 7.4 and higher. By configuring files like composer.json, phpcs.xml, and ci.yml, you can automate code checks and ensure compliance with coding standards for better quality and maintainability.
Czym jest WPCS i dlaczego go potrzebujesz?
WPCS (WordPress Coding Standards) to zbiór standardów kodowania, który pomaga programistom tworzyć przejrzysty i łatwy w utrzymaniu kod dla WordPressa. W tym poradniku wyjaśniamy, jak skonfigurować GitHub Actions do automatycznej weryfikacji kodu pod kątem zgodności z WPCS z wykorzystaniem wersji PHP 7.4 i nowszych.
Jak skonfigurować GitHub Actions do weryfikacji zgodności z WPCS?
GitHub Actions pozwala zautomatyzować proces weryfikacji kodu. Przy każdym commicie do głównej gałęzi kod zostanie automatycznie sprawdzony pod kątem zgodności z WPCS, co pomaga unikać błędów i poprawia jakość projektu.
Konfiguracja pliku composer.json
Aby skonfigurować WPCS, dodaj poniższy wpis do sekcji „scripts” w pliku composer.json:
"scripts": {
"phpcs": "vendor/bin/phpcs --colors --standard=phpcs.xml"
}
To polecenie wskazuje, gdzie znajduje się plik konfiguracyjny phpcs.xml.
Tworzenie pliku phpcs.xml
Utwórz plik phpcs.xml w katalogu głównym projektu. Plik ten zawiera reguły służące do weryfikacji kodu. Przykładowa konfiguracja wygląda następująco:
<?xml version="1.0"?>
<ruleset name="WPCS">
<description>Coding Standards</description>
<!-- What to scan -->
<file>.</file>
<exclude-pattern>*/\.github/*</exclude-pattern>
<exclude-pattern>*/assets/*</exclude-pattern>
<exclude-pattern>*/htmltofpdf/*</exclude-pattern>
<exclude-pattern>*/languages/*</exclude-pattern>
<exclude-pattern>*/node_modules/*</exclude-pattern>
<exclude-pattern>*/src/js/*</exclude-pattern>
<exclude-pattern>*/src/php/includes*</exclude-pattern>
<exclude-pattern>*/vendor/*</exclude-pattern>
<exclude-pattern>*\.js</exclude-pattern>
<exclude-pattern>*\.mo</exclude-pattern>
<exclude-pattern>*\.po</exclude-pattern>
<exclude-pattern>*\.css</exclude-pattern>
<!-- How to scan -->
<arg value="sp"/><!-- Show sniff and progress -->
<arg name="basepath" value="./"/><!-- Strip the file paths down to the relevant bit -->
<arg name="extensions" value="php"/>
<arg name="parallel" value="12"/><!-- Enables parallel processing when available for faster results. -->
<config name="installed_paths" value="vendor/phpcompatibility/php-compatibility,vendor/phpcompatibility/phpcompatibility-paragonie,vendor/phpcompatibility/phpcompatibility-wp,vendor/wp-coding-standards/wpcs"/>
<config name="testVersion" value="7.4-"/>
<!-- Rules: Check PHP version compatibility -->
<rule ref="PHPCompatibility"/>
<rule ref="PHPCompatibilityWP"/>
<!-- Rules: WordPress Coding Standards -->
<config name="minimum_supported_wp_version" value="5.9"/>
<rule ref="WordPress"/>
<!-- Allow only short array syntax -->
<rule ref="Generic.Arrays.DisallowShortArraySyntax.Found">
<severity>0</severity>
</rule>
<rule ref="Generic.Arrays.DisallowLongArraySyntax.Found"/>
<!-- Allow short ternary syntax -->
<rule ref="WordPress.PHP.DisallowShortTernary.Found">
<severity>0</severity>
</rule>
<!-- Rules to follow PSR4 -->
<rule ref="WordPress.Files.FileName.InvalidClassFileName">
<severity>0</severity>
</rule>
<rule ref="WordPress.Files.FileName.NotHyphenatedLowercase">
<severity>0</severity>
</rule>
</ruleset>
Więcej informacji znajdziesz w dokumentacji.
Konfiguracja pliku ci.yml
Utwórz katalog .github/workflows i dodaj w nim plik ci.yml z następującą konfiguracją:
name: check WPCS
on: [ push, pull_request ]
jobs:
cs_and_tests:
strategy:
matrix:
os: [ ubuntu-latest ]
php-version: [ '7.4', '8.0', '8.1', '8.2' ]
env:
wp-directory: wordpress
wp-plugin-directory: wordpress/wp-content/plugins/your_folder
runs-on: ${{ matrix.os }}
name: PHP ${{ matrix.php-version }} on ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
path: ${{ env.wp-plugin-directory }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: json, mysqli, mbstring, zip
- name: Install dependencies with caching
uses: ramsey/composer-install@v2
with:
working-directory: ${{ env.wp-plugin-directory }}
- name: Run code sniffer
working-directory: ${{ env.wp-plugin-directory }}
run: composer phpcs
Zadbaj o prawidłowe wcięcia, ponieważ pliki YAML są wrażliwe na formatowanie.
Przyjrzyjmy się bliżej temu plikowi i najważniejszym parametrom, które należy zmodyfikować:
- php-version: [ ‘7.4’, ‘8.0’, ‘8.1’, ‘8.2’ ] — Są to wersje PHP, na których Twój kod będzie testowany.
- wp-plugin-directory: wordpress/wp-content/plugins/your_folder_name
Możesz nazwać wp-plugin-directory w dowolny sposób, ponieważ jest to jedynie zmienna środowiskowa (ENV). Musisz jednak konsekwentnie używać tej samej nazwy w całym pliku. Zmienna ta określa ścieżkę do Twojego kodu w maszynie wirtualnej.
To jedyne zmiany, które musisz wprowadzić w tym pliku, aby działał z Twoim projektem.
Następnie wystarczy wykonać polecenie git push, aby przesłać wszystkie zmiany do repozytorium. Aby sprawdzić, jak to działa, przejdź do swojego repozytorium i otwórz zakładkę Actions. Powinieneś zobaczyć coś takiego.

Jeśli Twój kod nie przejdzie weryfikacji, przejdź do konkretnego uruchomienia akcji. Znajdziesz tam szczegółową listę błędów i problemów w kodzie, które należy poprawić, aby pomyślnie przejść test.

Jak naprawić błędy weryfikacji WPCS?
Jeśli weryfikacja zakończy się niepowodzeniem, GitHub Actions wyświetli listę błędów. Aby je naprawić:
- Przejdź do zakładki Actions w swoim repozytorium.
- Otwórz szczegółowy raport błędów.
- Popraw wskazane problemy w kodzie.
Po poprawieniu błędów wykonaj polecenie git push, aby ponownie uruchomić weryfikację.
Podsumowanie
Konfiguracja GitHub Actions do weryfikacji zgodności z WPCS to prosty i skuteczny sposób na poprawę jakości kodu. Postępuj zgodnie z tym poradnikiem, aby mieć pewność, że Twój projekt spełnia standardy WordPressa. Jeśli napotkasz trudności, skontaktuj się z naszym zespołem, aby uzyskać profesjonalną pomoc.
Gotowy, aby wynieść swój projekt
na wyższy poziom?
Wprowadźmy Twoją wizję w życie dzięki profesjonalnemu tworzeniu stron i dedykowanym rozwiązaniom.
Skontaktuj się z nami już teraz i rozpocznijmy pracę nad przekształceniem Twoich pomysłów w rzeczywistość!