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ář