Nepřetržitá integrace/PHP CodeSniffer
PHP CodeSniffer je nástroj pro detekci chyb stylu kódu v kódu PHP. Composer používáme jako obal pro správu verze CodeSniffer, závislostí a provádění. Pokyny k kódovacím konvencím používaným v souborech kódové základny MediaWiki napsaných v PHP naleznete v bodě Příručka:Konvence pro psaní kódu/PHP.
Nejprve načtěte vývojové závislosti spuštěním composer update.
U většiny rozšíření MediaWiki, vzhledů a knihoven PHP spustí spuštění composer test také CodeSniffer.
U většiny rozšíření MediaWiki, vzhledů a knihoven PHP spustí spuštění composer phpcs také CodeSniffer.
Spuštění lokálně bez composeru
Pokud narazíte na problémy s vypršením časového limitu skladatele, můžete jej spustit přímo s vendor/bin/phpcs -p -s.
Je důležité spustit verzi PHP_CodeSniffer nainstalovanou Composerem ve vašem místním úložišti projektu vendor/bin, aby byly nalezeny všechny sniffy.
Nepoužívejte verzi systému, kterou najdete na vašem PATH.
Pokud dojde k nedostatku paměti, můžete jej spustit s větší pamětí:
vendor/bin/phpcs -p -s -d memory_limit=256M.
Verzování
Doporučuje se připnout konkrétní verzi do souboru composer.json.
Snažíme se držet ducha semver.org, ale ne skutečného standardu.
Hlavní věc, o kterou se zajímáme, je zajistit, že bez ohledu na to, když spustíte composer test, projde, pokud dříve prošel, a ne náhodně selže, protože byla vydána nová verze.
Náhodné selhání sestavení je bolest, když se pokoušíte backportovat opravu nebo se jen pokoušíte něco vyvinout a potřebujete přerušit práci, abyste to opravili.
V současné době používáme 0 jako naši hlavní verzi a přidáme vedlejší verzi pro nové sniffy a opravíme verzi opravy pro opravy chyb nebo vylepšení stávajících sniffů. Pro skutečný zahrnutý PHP kód není zaručena žádná stabilita.
Související odkazy
- Příručka:Konvence pro psaní kódu/PHP
- Průběžná integrace/Vstupní body#PHP - Jak nastavit CodeSniffer a další statickou analýzu v novém repozitáři
- Jak nainstalovat - Jak nastavit CodeSniffer ve vašem repozitáři (mimo Wikimedia Gerrit)
- PHP_CodeSniffer on GitHub (upstream)
- https://phpcs.toolforge.org/