Izdanje PHPStan 1.0, statičkog analizatora za PHP kod

Nakon šest godina razvoja, objavljeno je prvo stabilno izdanje PHPStan 1.0, statičkog analizatora. Omogućuje vam pronalaženje grešaka u PHP kodu bez njegovog izvršavanja ili korištenja jediničnih testova. Kod projekta napisan je u PHP-u i distribuira se pod MIT licencom.

Analizator nudi 10 razina provjere, pri čemu svaka sljedeća razina proširuje mogućnosti prethodne i pruža strože provjere:

  • Osnovne provjere, otkrivanje nepoznatih klasa, funkcija i metoda ($this), nedefiniranih varijabli i prosljeđivanje pogrešnog broja argumenata.
  • Identificiranje potencijalno nedefiniranih varijabli, nepoznatih magičnih metoda i svojstava klase pomoću __call i __get.
  • Identificira nepoznate metode u svim izrazima, ne ograničavajući se na pozive putem $this. Provjera PHPDocs-a.
  • Provjera povratnih tipova i dodjeljivanje tipova svojstvima.
  • Osnovno otkrivanje "mrtvog" (nikad pozvanog) koda. Otkrivanje instanceof poziva koji uvijek vraćaju false, "else" blokova koji se nikada ne aktiviraju i koda nakon return naredbi.
  • Provjera tipova argumenata koji se prosljeđuju metodama i funkcijama.
  • Upozorenje o nedostajućim napomenama s informacijama o vrsti.
  • Upozorenje o nevažećim tipovima unija koji definiraju kolekcije od dva ili više tipova.
  • Upozorenje o pozivanju metoda i pristupanju svojstvima s tipovima koji mogu imati vrijednost null.
  • Provjera upotrebe "mješovitog" tipa.

    Primjeri utvrđenih temeljnih problema:

    • Postojanje klasa korištenih u instanceof, catch, typehints i drugim jezičnim konstrukcijama.
    • Postojanje i dostupnost metoda i funkcija koje se pozivaju, kao i broj argumenata koji se prosljeđuju.
    • Provjerava vraća li metoda podatke istog tipa kao što je definirano u naredbi return.
    • Postojanje i vidljivost svojstava kojima se pristupa te provjera deklariranih i stvarnih tipova podataka korištenih u svojstvima.
    • Ispravan broj parametara proslijeđenih pozivima sprintf/printf u bloku formata stringa.
    • Postojanje varijabli uzimajući u obzir blokove formirane operatorima grananja i petljama.
    • Beskorisna pretvaranja tipova (npr. "(string) 'foo'") i stroge provjere ("===" i "!==") na podacima s različitim tipovima i operandima koje uvijek vraćaju false.

    Ključne značajke PHPStan-a 1.0:

    • Implementirana je razina validacije "9" koja provjerava upotrebu tipa "mixed", koji je dizajniran za prilagođavanje funkcijama koje prihvaćaju parametre različitih tipova. Razina 9 otkriva nesigurnu upotrebu tipa "mixed", kao što je prenošenje vrijednosti tipa "mixed" drugom tipu, pozivanje metoda tipa "mixed" i pristup njegovim svojstvima, budući da možda ne postoje.
    • Kontroliranje provjere identičnih povratnih vrijednosti za identične pozive funkcija pomoću anotacija @phpstan-pure i @phpstan-impure.
    • Analiza tipova u try-catch-finally konstrukcijama korištenjem @throws anotacija.
    • Identificiranje definiranih, ali nekorištenih internih (privatnih) svojstava, metoda i konstanti.
    • Prosljeđivanje nekompatibilnih povratnih funkcija funkcijama za rukovanje nizovima kao što su array_map i usort.
    • Pregledajte tipove za nedostajuće anotacije s napomenama o tipu.
    • Opisi tipova sada su kompatibilni s PHPDocsom, što vam omogućuje korištenje tipova iz poruka o pogreškama u PHPDocsu.

    Izvor: opennet.ru

  • Kupite pouzdan hosting za stranice s DDoS zaštitom, VPS VDS poslužiteljima 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster