Gefa út PHPStan 1.0, kyrrstöðugreiningartæki fyrir PHP kóða

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:

  • Grunnathuganir, skilgreina óþekkta flokka, aðgerðir og aðferðir ($this), óskilgreindar breytur og senda rangan fjölda frumbreyta.
  • Að bera kennsl á mögulega óskilgreindar breytur, óþekktar töfraaðferðir og eiginleika flokka með __call og __get.
  • Greining á óþekktum aðferðum í öllum tjáningum, ekki takmarkað við símtöl í gegnum $this. Athugar PHPDocs.
  • Athugun á skilategundum og úthlutun tegunda á eiginleika.
  • Grunnauðkenni „dauðs“ (aldrei kallaður) kóða. Þekkja tilvik af símtölum sem alltaf skila ósönnum, "annars" kubbum sem aldrei kvikna og kóða eftir skil.
  • Athugaðu hvers konar rök eru send til aðferða og aðgerða.
  • Viðvörun um að skýringar vantar tegundarupplýsingar.
  • Viðvörun um rangar stéttargerðir sem skilgreina söfn af tveimur eða fleiri gerðum.
  • Viðvörun um kallaaðferðir og aðgang að eiginleikum með gerðum "nullable".
  • Athugun á notkun "blandaðrar" gerðarinnar.

    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

  • Bæta við athugasemd