Release av PHPStan 1.0, en statisk analysator för PHP-kod

Efter sex års utveckling har den första stabila versionen av PHPStan 1.0, en statisk analysator, släppts. Den låter dig hitta fel i PHP-kod utan att köra den eller använda enhetstester. Projektets kod är skriven i PHP och distribueras under MIT-licensen.

Analysatorn erbjuder 10 verifieringsnivåer, där varje efterföljande nivå utökar den föregående nivåns funktioner och ger strängare kontroller:

  • Grundläggande kontroller, detektering av okända klasser, funktioner och metoder ($this), odefinierade variabler och att skicka fel antal argument.
  • Identifiera potentiellt odefinierade variabler, okända magiska metoder och klassegenskaper med __call och __get.
  • Identifierar okända metoder i alla uttryck, inte begränsat till anrop via $this. PHPDocs-kontrollprogram.
  • Kontrollera returtyper och tilldela typer till egenskaper.
  • Grundläggande detektering av "död" (aldrig anropad) kod. Detektering av instansanrop som alltid returnerar falskt, "annars"-block som aldrig utlöses, och kod efter return-satser.
  • Kontrollerar vilka typer av argument som skickas till metoder och funktioner.
  • Varning om saknade anteckningar med typinformation.
  • Varning om ogiltiga unionstyper som definierar samlingar av två eller fler typer.
  • Varning om anrop av metoder och åtkomst till egenskaper med typer som kan innehålla null.
  • Kontroll av användningen av den "blandade" typen.

    Exempel på underliggande problem som identifierats:

    • Förekomsten av klasser som används i instanceof, catch, typehints och andra språkkonstruktioner.
    • Förekomsten och tillgängligheten av de metoder och funktioner som anropas, samt antalet argument som skickas.
    • Kontrollerar om en metod returnerar data av samma typ som definierats i return-satsen.
    • Förekomsten och synligheten av de egenskaper som används, och kontroll av de deklarerade och faktiska datatyper som används i egenskaperna.
    • Korrekt antal parametrar som skickats till sprintf/printf-anrop i strängformatblocket.
    • Förekomst av variabler som tar hänsyn till block som bildas av förgreningsoperatorer och loopar.
    • Användlösa typomvandlingar (t.ex. "(sträng) 'foo'") och strikta kontroller ("===" och "!==") på data med olika typer och operander som alltid returnerar falskt.

    Viktiga funktioner i PHPStan 1.0:

    • Valideringsnivå "9" har implementerats, vilket kontrollerar användningen av typen "mixed", vilken är utformad för att hantera funktioner som accepterar parametrar av olika typer. Nivå 9 upptäcker osäker användning av "mixed", såsom att skicka värden av typen "mixed" till en annan typ, anropa metoder av typen "mixed" och komma åt dess egenskaper, eftersom de kanske inte existerar.
    • Kontrollera kontrollen för identiska returvärden för identiska funktionsanrop med hjälp av annoteringarna @phpstan-pure och @phpstan-impure.
    • Typanalys i try-catch-finally-konstruktioner med hjälp av @throws-annoteringar.
    • Identifiera definierade men oanvända interna (privata) egenskaper, metoder och konstanter.
    • Skicka inkompatibla återanrop till arrayhanteringsfunktioner som array_map och usort.
    • Kontrollera typer för saknade typehint-annoteringar.
    • Typbeskrivningar är nu kompatibla med PHPDocs, vilket gör att du kan använda typer från felmeddelanden i PHPDocs.

    Källa: opennet.ru

  • Köp pålitlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster