Eftir sex ára þróun fór fyrsta stöðuga útgáfan af kyrrstöðugreiningartækinu PHPStan 1.0 fram, sem gerir þér kleift að finna villur í PHP kóða án þess að keyra hann og nota einingapróf. Verkefniskóðinn er skrifaður í PHP og dreift undir MIT leyfinu.
Greiningartækið býður upp á 10 stig athugana, þar sem hvert síðara stig eykur getu þess fyrra og veitir strangari athuganir:
Dæmi um undirliggjandi vandamál sem greint hefur verið frá:
- Tilvist flokka sem notaðir eru í dæmi um, afla, leturstuð og önnur málsmíði.
- Tilvist og aðgengi að aðferðum og aðgerðum sem kallaðar eru, svo og fjöldi röksemda sem hafa farið fram.
- Athugið að aðferðin skili gögnum með sömu gerð og skilgreind er í skilatjáningu.
- Tilvist og sýnileiki eignanna sem verið er að nálgast og athuga yfirgefnar og raunverulegar gagnategundir sem notaðar eru í eignunum.
- Fjöldi færibreyta sem sendar eru til sprintf/printf-kalla í strengjasniðsreitnum er réttur.
- Tilvist breytna að teknu tilliti til blokka sem myndast af greiningaraðilum og lykkjum.
- Gagnslaus týpuköst (t.d. "(streng) 'foo'") og ströng próf ("===" og "!==") á gögnum með mismunandi gerðum og operöndum sem alltaf skila ósatt.
Helstu nýjungar í PHPStan 1.0:
- „9“ eftirlitsstigið hefur verið innleitt, sem athugar notkun „blönduðu“ gerðarinnar, ætluð til að skipuleggja móttöku aðgerðarinnar á breytum með mismunandi gerðum. Stig XNUMX auðkennir óörugga notkun „blandaðs“, svo sem að senda gildi af gerðinni „blandað“ yfir á aðra tegund, kalla aðferðir af gerðinni „blandað“ og fá aðgang að eiginleikum þess vegna þess að þeir eru kannski ekki til.
- Stjórnaðu því hvort skilagildi séu eins fyrir eins aðgerðarköll með því að nota @phpstan-pure og @phpstan-impure athugasemdirnar.
- Tegundargreining í try-catch-finally smíðar með því að nota @throws athugasemdir.
- Auðkenning skilgreindra en ónotaðra innri (einka) eiginleika, aðferða og fasta.
- Sendir ósamrýmanlegt svarhringingar til fylkisaðgerða eins og array_map og usort.
- Tegundarskoðun fyrir leturmerkingar sem vantar.
- Gerði tegundayfirlýsingar samhæfðar við PHPDocs, sem gerir kleift að nota tegundir úr villuboðum í PHPDocs.
Heimild: opennet.ru