Larastan
Larastan používám jako způsob, jak dostat do Laravel projektu statickou analýzu, která rozumí Eloquentu, facades i dynamickým částem frameworku. Nejde o nástroj, který by nahradil testy nebo review, ale umí včas upozornit na typové chyby, špatné návratové hodnoty a drobné problémy, které by jinak vyšly najevo až za běhu aplikace.
Larastan je jeden z těch nástrojů, které nejsou na první pohled efektní, ale v dlouhodobé údržbě projektu udělají hodně práce. Nezrychlí klikání v administraci, nepřidá novou viditelnou funkci a klient si ho nejspíš nikdy nevšimne. Přesto může výrazně ovlivnit, jak jistě se člověk v Laravel aplikaci pohybuje.
Laravel je dynamický framework. Eloquent modely, facades, kolekce, service container a magické metody jsou pohodlné, ale běžná statická analýza se v nich snadno ztratí. Larastan stojí nad PHPStanem a přidává mu znalost Laravel ekosystému. Díky tomu umí upozornit na problémy, které by čistý PHPStan buď neviděl, nebo by je vyhodnotil příliš obecně.
Proč statickou analýzu řešit
U menší aplikace se může zdát, že stačí testy a ruční kontrola. Jenže čím déle projekt žije, tím víc se objevují drobné nesrovnalosti: metoda může vracet něco jiného, než se očekává, kolekce obsahuje jiný typ objektu, relation je pojmenovaná jinak, než si vývojář myslí, nebo se někde předává nullable hodnota do místa, které s ní nepočítá.
Larastan pomáhá tyhle věci zachytit dřív. Nečeká na to, až chyba spadne v produkci nebo až ji někdo náhodou trefí v testu. Projde kód a snaží se ukázat místa, kde typy, návratové hodnoty nebo volání metod nedávají smysl. Není to náhrada testů. Je to další vrstva kontroly, která doplňuje testy úplně jiným způsobem.
Laravel bez falešného klidu
Největší přínos Larastanu je podle mě v tom, že nenutí vývojáře ignorovat realitu Laravelu. Standardní PHP analýza může být u frameworků s dynamickým chováním buď příliš slabá, nebo naopak hlučná. Larastan rozumí modelům, facades, service containeru a dalším částem frameworku lépe, takže dokáže dávat smysluplnější výsledky.
To neznamená, že stačí nástroj nainstalovat a všechno je vyřešené. U starší aplikace může první spuštění ukázat hodně problémů. Některé budou skutečné chyby, jiné jen místa, kde kód nemá dostatečné typy nebo dokumentaci. Přínos není v tom, že projekt okamžitě projde na nejvyšší úroveň. Přínos je v tom, že člověk začne vidět, kde je codebase nejasná.
Postupné zpřísňování
Larastan bych zaváděl postupně. U existujícího projektu není dobrý cíl zapnout nejpřísnější režim a strávit týden hašením tisíců hlášek. Lepší je nastavit úroveň, která je zvládnutelná, opravit největší problémy a teprve potom laťku posouvat dál. Statická analýza má pomáhat vývoji, ne vytvořit další zdroj frustrace.
Dobře funguje i pravidlo, že nový kód by už neměl přidávat další problémy. Starší dluh se dá řešit postupně, ale pipeline může hlídat, aby se nezvětšoval. V kombinaci s PHPDoc, generiky u kolekcí, přesnějšími návratovými typy a lepší strukturou služeb začne Larastan rychle ukazovat hodnotu.
Kam zapadá v procesu
Největší smysl mi Larastan dává v CI vedle testů, Pint, Rectoru a dalších kontrol. Testy ověřují chování, Pint styl, Rector mechanické refaktoringy a Larastan typovou a strukturální konzistenci. Každý z těchto nástrojů hlídá jinou část problému. Dohromady dávají vývojáři větší jistotu, že změna není jen zelená lokálně, ale obstojí i v širším kontextu projektu.
U AI asistovaného vývoje je to ještě důležitější. Agent může vygenerovat kód, který vypadá přesvědčivě, ale typově nesedí nebo používá metodu, která ve skutečnosti neexistuje. Larastan takové věci často odhalí rychleji než člověk při čtení diffu. Pořád je potřeba úsudek a review, ale statická analýza zmenšuje prostor pro tiché chyby, které by jinak prošly až příliš daleko.
hub Související nástroje
Prozkoumejte podobné nástroje
Náhodný výběr nástrojů ze stejné kategorie.
Rector
Rector beru jako nástroj pro chvíle, kdy už ruční refaktoring přestává dávat ekonomický smysl. Umí projít PHP codebase, navrhnout mechanické úpravy a pomoct s upgrady jazyka i frameworků bez toho, aby se člověk ztratil v tisících drobných změn. Největší hodnotu má ve chvíli, kdy je součástí kontrolovaného procesu, ne slepého automatického přepisování.
Laravel Sail
Laravel Sail je oficiální Docker vývojové prostředí pro Laravel. Pomáhá rozběhnout aplikaci, databázi, cache a další služby bez ruční instalace celého stacku na počítači vývojáře. Největší smysl dává tam, kde chcete rychlý start projektu a konzistentní lokální prostředí napříč týmem.
Laravel Horizon
Laravel Horizon je praktická vrstva nad Redis frontami v Laravelu. Pomáhá sledovat průchodnost jobů, selhání, dobu běhu i nastavení workerů, takže fronty nejsou jen proces někde na serveru, ale část aplikace, kterou lze reálně řídit a kontrolovat. Největší smysl dává u projektů, kde se fronty používají pravidelně a jejich stav má vliv na provoz.
add_circle Chybí tu nástroj?
Navrhněte nástroj do výpisu
Pokud jste nenašli užitečný nástroj, pošlete mi jeho název a URL. Zkontroluji ho a případně doplním do veřejného katalogu.