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
Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal a Symfony. Obojí také školím spolu se základy SEO. Jsem Acquia Certified Developer a Site Builder a napsal jsem několik knih o Drupalu. Ve volných chvílích cestuji a podnikám výlety. Více se dozvíte na mém firemním webu.

reklama

Komentáře k článku

Přidat komentář

Filtered HTML

  • Povolené HTML značky: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <p> <br>
  • Řádky a odstavce se zalomí automaticky.
  • Web page addresses and email addresses turn into links automatically.

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Poslední komentáře
reklama
Nové diskuze
reklama
Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

Knihy o Drupalu

Kniha Drupal 8 Kniha Drupal 7 333 tipů a triků pro Drupal
Více na KnihyPolzer.cz

Co píší na Interval.cz
@maxiorel na Twitteru

Maxiorel na Twitteru