Pre-commit kontrola kódu rubrika: Programování: PHP

6 arron
položil/-a 15.11.2016

Ahoj,

rád bych se zeptal zdejší komunity, jaké nástroje používá pro kontrolu zdrojových kódů před tím, než například proběhne git push na server? Mám na mysli nástroje na kontrolu formátování kódu případně jakékoliv další užitečné.

Pro PHP třeba na tu kontrolu formátování znám například Code Sniffer, který je ale z mého pohledu uplně extrémě nepřehledný a jakákoliv úprava stylu s sebou nese napsání množství kódu + neznám snadnou cestu, jak pomocí jednotlivých pravidel sestavit přehledný code-style.

Ale zajímají mě obecně další zajímavé nástroje, na které by bylo užitečné se podívat :-)

Díky moc za všechny odpovědi.

Komentáře

  • arron : Fakt není nic jiného na kontrolu codestyle než Code Sniffer? A fakt nikdo nepoužíváte žádné další kontroly přímo při pushování? (udivenej smajlík) 22.11.2016
  • arron : No, příznám se, že jsem trochu zklamaný :-D Čekal jsem tady diskuzi, co všechno ještě má být v pre-commit (nebo pre-push) hoocích, jak to mají všichni vymazlené a tak ;-) Taky jsem fakt čekal, že najdu nějaký uživatelský přívětivější nástroj než je Code Sniffer :-) No ale co už no :-) V každém případě díky všem za jejich názory a nápady! :-) 14.12.2016
odkaz
6 Tomáš Votruba
odpověděl/-a 16.11.2016
 
upravil/-a 16.11.2016

Ahoj,

právě integrace CodeSnifferu, případně PHPUnitu, je výborný příklad jak využít pre-commit hook.
Nemusím pak čekat na testovací server až selže, abych opravil pár řádek u sebe.

CodeSniffer jde spustit celkem snadno, navíc jen na upravených souborech, takže nezdržuje kontrolou celé aplikace.

Takhle ho používám v Zenify/CodingStandard (vychází z pravidel pro Nette)

Komentáře

  • Taco : Taky tak. Navíc se tam toho dá přidat víc. Třeba php5cc, nebo další. 16.11.2016
  • arron : Na Code Snifferu mě vadí 2 věci, které tak trochu splývají v jednu. Podle sady pravidel se nedá určit, jak má správně vypadat výsledný kód (a tedy udělat pořádný manuál, aby všichni věděli jak si nastavit IDE a jak ten standard vůbec vypadá) a naopak, podle popsaného standardu neumím jednoduše určit, která všechna pravidla jsou potřeba. Nicméně budu rád, pokud mě vyvedete z omylu a ukážete mi, že ani jedno z toho nepotřebuju :-) 22.11.2016
  • Kit : CodeSniffer jsem už kdysi zkoušel, ale jeví se mi jako nepoužitelný. Proč by název privátní proměnné měl začínat podtržítkem? Proč mě nutí zalamovat před složenou závorkou? Proč mi hází jako chybu tabulátory? Proč mi vnucuje komentáře? 22.11.2016
  • Taco : @Kit: Že by problém konfigurace? 22.11.2016
  • Kit : @Taco: Určitě. Ovšem s některými parametry ten program havaruje, což není jeho nejlepší vizitkou. 22.11.2016
  • Taco : @Kit: Každý program de shodit. A nic co jsi uváděl není problém změnit. Což vyvrací tvé tvrzení, že je nepoužitelný. To @arron-ova výtka, že je málo deklarativní je pravda spíš. 22.11.2016
  • Kit : @Taco: Aspoň mi ten program místo spadnutí na "Invalid argument supplied for foreach()" mohl říct, jaké hodnoty parametru --generator jsou přípustné. 22.11.2016
  • Taco : @Kit: To zajisté mohl. No a? Kdysi dávno jsem takhle uvažoval taky. Jenže pak jsem zjistil jaká práce je udělat kvalitní soft. A tak buď to používám, nebo si napíšu vlastní řešení. Ale v mnoha případech spíše to první. Jestli přitáhneš něco, co bude důstojnou náhradou CS, budu jen rád. Do té doby je tvá kritika jalová. 22.11.2016
  • Kit : @Taco: Neboj, už na tom pracuji. 22.11.2016
  • Tomáš Votruba : CodeSniffer už dávno není nejlepší nástroj jak začít s coding standardem (autor podporuje PHP 5.2 a kód je otestovaný pouze z 5 %). Mrkněte na php-cs-fixer, o ~8 let novější a s lepší dokumentací: https://github.com/FriendsOfPHP/PHP-CS-Fixer 22.11.2016
  • Kit : Skvělé, našel jsem tam i tohle: https://github.com/stephpy/vim-php-cs-fixer 23.11.2016

Pro zobrazení všech 6 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.