Standarde de codare: ceva la care să adulmeci
Publicat: 2021-07-19Unele întrebări au existat atâta timp cât dezvoltarea software-ului. Ar trebui să fac liniuță cu file sau spații? Sunt standardele de codare atât de importante? Chiar trebuie să pierd timpul respectând niște reguli arbitrare?
Respectiv, răspunsurile la aceste întrebări sunt: file (evident), da (mai puțin evident) și nu ( un fel de).

Importanța standardelor a fost acoperită pe larg de alții, așa că nu voi intra în detaliu aici, dar esența acestuia este: consistența internă este de dorit într-un proiect dat, deoarece îmbunătățește lizibilitatea, limitează surprizele și poate contribui la robustețea codului.
Nu trebuie să „pierdeți timpul” respectând standardele, deoarece există modalități de a aplica aceste standarde automat!
Ceea ce voi acoperi aici este un mijloc de configurare rapidă și ușoară a instrumentului independent PHP Codesniffer (PHPCS) pentru proiectele WordPress. Acest lucru vă va permite să:
- Produceți un raport privind respectarea standardelor în codul dvs.
- Rezolvați automat o mare varietate de probleme de conformitate
Vom implementa standardele WordPress în exemplele care urmează.
Se instalează
Condiții preliminare:
- Acces la terminal (utilizatorii Windows pot avea succes cu Bash pentru Windows, dar acest lucru nu este testat)
- Manager pachet compozitor
Deși este posibil să instalați PHPCS de la sine, nu acceptă WordPress în mod implicit. Pentru aceasta, vom instala standardele de codare WordPress (WPCS) numite rapid .
Mai întâi, navigați către oriunde doriți să instalați WPCS pentru utilizare globală.
$> cd / cale / către / oriunde
Instalați pachetul cu compozitor.
$> compozitor create-proiect wp-coding-standards / wpcs --no-dev
În acest moment, am putea să ne scufundăm și să începem să folosim WPCS, dar există câteva steaguri de setat de fiecare dată când executăm comanda. Să configurăm câteva aliasuri pentru comoditate.
Deschideți .profile din directorul de acasă din editorul preferat (sau creați-l dacă nu există) și adăugați următoarele:
# Standarde de codare WP export PATH = $ PATH: "/ cale / către / oriunde / wpcs / furnizor / bin" alias wpcs = 'phpcs --standard = WordPress --extensions = php alias wpcbf = 'phpcbf --standard = WordPress --extensions = php
Am adăugat aici două aliasuri - unul pentru phpcs (care găsește și afișează eșecuri de conformitate) și unul pentru phpcbf (care remediază automat diferite probleme găsite de phpcs). Opțiunile suplimentare fac următoarele:
–Standard = WordPress - aplică standardele WordPress (setate în WPCS)
–Extensii = php - vizează numai fișiere PHP (PHPCS vizează în mod implicit PHP, CSS și JS)
Reporniți terminalul (sau sursa .profile ) și WPCS este gata să vă adulmece codul!
Adulmecând
Pentru a produce un raport sniff pe un fișier, executați următoarele:
$> wpcs /path/to/your/php/project/file.phpAceasta va genera raportul în terminal. Alternativ, puteți trimite acest lucru într-un fișier:
$> wpcs /path/to/your/php/project/file.php> output.txt
Raportul Sniff
Ieșirea dvs. WPCS sniff va fi cam așa:


Există o cantitate destul de mare de informații aici, dar este destul de curată. Să trecem în revistă ceea ce avem:
- Fișierul vizat
- Un rezumat al numărului de erori / avertismente găsite și al numărului de linii afectate
- O listă a problemelor găsite, cu niveluri de severitate și descrieri
- O indicație a numărului de probleme pe care phpcbf le poate rezolva automat (practic toate problemele cu un [x])
Așa cum ar fi de așteptat, PHPCS nu poate explica toate. Nu va face presupuneri despre alegerea punctuației în comentarii și anumite tipuri de formatare a codului, dar poate rezolva o mare varietate de probleme pentru dvs.
Un bonus frumos este că regulile WordPress permit PHPCS să detecteze probleme specifice WordPress, inclusiv utilizarea potențială greșită a funcțiilor.
Fixare
Rezolvarea automată a problemelor nu ar putea fi mai ușoară:
$> wpcbf /path/to/your/php/project/file.php
Un scurt rezumat este dat:

Orice erori rămase ar trebui să fie remediate manual, dar, de obicei, veți găsi o bună parte a problemelor care au fost tratate.
Reguli personalizate
S-ar putea să doriți, de asemenea, să personalizați setul de reguli, să excludeți anumite directoare din proiectul dvs. și așa mai departe. Documentele setului de reguli adnotate PHPCS oferă exemple de toate modificările pe care le puteți face, dar, în linii mari, doar:
- Creați un fișier set de reguli
- Faceți referință în comanda PHPCS
Iată un exemplu de fișier set de reguli:
<? xml version = "1.0"?>
<ruleset name = "WordPress Coding Standards">
<description> Standarde WordPress personalizate. </description>
<rule ref = "WordPress">
<exclude name = "Generic.Formatting.MultipleStatementAlignment.NotSameWarning" />
</rule>
<exclude-pattern> * / bin / * </exclude-pattern>
<exclude-pattern> * / node_modules / * </exclude-pattern>
<exclude-pattern> * / tests / * </exclude-pattern>
</ruleset>În exemplu, am făcut următoarele:
- A făcut referire la setul de reguli WordPress (de la WPCS)
- A exclus o regulă
- Au fost excluse unele directoare
Fișierul setului de reguli poate fi plasat în orice director de la care apelați WPCS (proiectul, tema sau rădăcina pluginului este de obicei sensibilă) și poate fi referit printr-un steag. Actualizați steagul standard din profilul dvs., astfel:
# Standarde de codare WP export PATH = $ PATH: "/ cale / către / oriunde / wpcs / furnizor / bin" alias wpcs = 'phpcs --standard = codesniffer.ruleset.xml --extensions = php alias wpcbf = 'phpcbf --standard = codesniffer.ruleset.xml --extensions = php
Pentru a verifica ce reguli sunt marcate atunci când rulați WPCS, pur și simplu rulați-l cu steagul -s astfel:
$> wpcs -s /path/to/your/php/project/file.php
Ce urmează?
Ghidul de mai sus vă va permite să efectuați verificări ad-hoc de conformitate a standardelor în proiectul dvs. WordPress, dar dacă doriți să îl integrați în ciclul dvs. de dezvoltare standard, următorul pas logic este automatizarea.
Luați în considerare integrarea PHPCS într-un alergător de sarcini, cum ar fi gulp sau grunt (modulele PHPCS sunt disponibile pentru ambele) sau, în alt mod, integrarea acestuia în conducta dvs. de construire CI / CD.
Pentru ajutor cu dezvoltarea și proiectarea web, contactați-ne astăzi.
Dacă aveți nevoie de ajutor, nu ezitați să ne contactați.
