PHP Insights: analýza kvalitu kódu vašich projektů

V depositářích na internetu najdete množství udělátek sledujících kvalitu kódu projektů psaných v PHP. Mě zaujal nástroj PHP Insights. Jednoduchou, srozumitelnou formou vám sdělí, co je potřeba ve vašich zdrojácích vylepšit.

Reklama

Nebudu se pouštět do debaty, který nástroj hlídající kvalitu a další aspekty kódu v PHP je ten pravý, jediný a nejlepší. Každý si vyberme, co nám vyhovuje. Pro začátečníka nebo člověka, který ještě nic podobného nepoužíval, mi ale přijde zajímavý právě PHP Insights.

Tento prográmek vytvořil a udržuje Nuno Maduro. V popisu stojí, že by PHP Insights měl být skvělým výchozím bodem pro analýzu kvality kódu v PHP a že byl vytvořen s důrazem na zjednodušenou analýzu dostupnou skrze příkazový řádek.

Zkoušel jsem jej zatím jenom na projektech psaných v Symfony. Obecně potřebujete projekt postavený okolo Composeru. Bez potřeby dodatečné konfigurace to běhá v projektech postavených se Symfony, Laravelem, Yii v Magentu a některých dalších.

Instalace PHP Insights je velice jednoduchá. Stačí zavolat příkaz pro začlenění do projektu s využitím Composeru:

composer require nunomaduro/phpinsights –dev

Dlužno dodat, že minimální podporovaná verze PHP ze strany PHP Insights je 7.2. Což by samozřejmě neměl být problém, jelikož starší PHP 7.1 už jen dobíhá formou bezpečnostních oprav a předchozí verze nejsou podporovány vůbec.

Co PHP Insights analyzuje

Pro spuštění analýzy na příkazovém řádku spusťte následující příkaz:

./vendor/bin/phpinsights

PHP Insights projde padesátku kroků a zobrazí výsledky analýzy. Rozděluje ji do čtyř skupin:

  • Kód / Code
  • Komplikovanost (složitost) / Complexity
  • Architektura / Architecture
  • Styl / Style

Pod barevnými čtverečky s možným vykreslením ve čtyřech barvách vám zobrazí základní statistiku. Počty komentářů, tříd, funkcí a celkového množství kódu v procentuálním a jeho vlastním bodovém ohodnocení.

PHP Insights

Po stisku klávesy Enter dostanete v prvé řadě tipy na úpravu svého kódu. V mém případě jednoho skrečovaného projektu v Symfony jsem viděl doporučení týkající se změny názvu setter funkcí, přejmenování dvoupísmenných proměnných, nebo třeba bezpředmětného odkazu na dokumentaci skrze @inheritDoc. Dlužno dodat, že šlo o kód vyrobený generátorem v Symfony.

Po dalším stisku Enteru uvidíte konkrétní vyhodnocení složitosti kódu. Opět vezmu můj výsledek. PHP Insights sleduje cyklomatickou složitost, která by se měla držet do hodnoty 5, já měl v kódu věci od 34 do 60…

Snad ale nejsem takový babrák. Opět šlo jen o třídu pro entitu vygenerovanou automatem v Symfony, která obsahovala jen definici, settery a gettery. Podmínky se tam vyskytovaly u definic různých kolekcí. Člověk musí brát automaty trochu s nadhledem.

Další stisk klávesy Enter poví podrobnosti o případných problémech s architekturou PHP kódu. Příliš dlouhé třídy, velké množství metod, velké počty řádků jednotlivých funkcí. Myslím, že taková ta klasika většiny programátorů.

PHP Insights

Předposlední stisk Enteru vás posune k hodnocení stylu kódu. Mezery, tabulátory, nepoužité use atd.

PHP Insights se částečně kouká i na zabezpečení. Resp. kontroluje, zda v použitých knihovnách nejsou nějaké známé bezpečnostní díry. V mém případě to byla záležitost šablonovacího systému Twig ve verzi 2.5.

A to je vše. Určitě nečekejte od PHP Insights nějaká kvanta grafů, tabulek a formátovaných výstupů v HTML. Nic takového. Svůj účel, tedy poskytnout rychlý a jednoduchý pohled na kvalitu vašeho kódu myslím splňuje dokonale. Jeho autor jej průběžně vyvíjí, takže doporučuji sledovat.

Tagy: 

Reklama

Přidat komentář