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í.
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ů.
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.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Přidat komentář