PHPStan 1.0 vĂ€ljalase, staatiline analĂŒsaator PHP koodi jaoks.

PĂ€rast kuueaastast arendustööd on vĂ€lja antud PHPStan 1.0, staatilise analĂŒsaatori esimene stabiilne versioon, mis vĂ”imaldab leida PHP koodis vigu ilma selle kĂ€itamiseta ja unit-testide kasutamiseta. Projekti kood on kirjutatud PHP keeles ja levitatakse MIT litsentsi alusel.

AnalĂŒsaator pakub 10 kontrollitaset, kus iga jĂ€rgmine tase laiendab eelneva vĂ”imalusi ja pakub rangemaid kontrolle:

  • PĂ”hikontrollid, teadmata klasside, funktsioonide ja meetodite ($this) mÀÀramine, mÀÀramata muutujad ja vale arvu argumentide edastamine.
  • TĂ”enĂ€oliselt mÀÀramata muutujate, teadmata magic-meetodite ja klasside omaduste, nagu __call ja __get, tuvastamine.
  • Teadmata meetodite tuvastamine kĂ”igis vĂ€ljendites, mitte ainult $this kaudu kutsumisest. PHPDocide kontroll.
  • Tagastus- ja omaduste tĂŒĂŒpide mÀÀramine.
  • PĂ”hiline „surma” (kunagi mitte kutsutud) koodi tuvastamine. Tuvastamine instanceof kutsumistest, mis alati tagastavad vale, kunagi mitte kĂ€ivituvate 'else' plokkide ja kodu, mis asub pĂ€rast return.
  • Argumentide tĂŒĂŒpide kontroll, mis edastatakse meetoditele ja funktsioonidele.
  • Hoiatus tĂŒĂŒpide teabeannotatsioonide puudumise kohta.
  • Hoiatus vale union-tĂŒĂŒpide kohta, mis mÀÀratlevad kahest vĂ”i enamast tĂŒĂŒbist koosnevaid kollektsioone.
  • Hoiatus meetodite kutsumise ja omadustele pÀÀsemise kohta 'nullable' tĂŒĂŒpidega.
  • Kasutamise muda tĂŒĂŒpide kontroll.

    NÀited tuvastatud pÔhiprobleemidest:

    • Klasside olemasolu, mida kasutatakse instanceof, catch, typehints ja muudes keelkonstruktsioonides.
    • Kutsutavate meetodite ja funktsioonide olemasolu ja kĂ€ttesaadavus ning edastatavate argumentide arv.
    • Kontroll, et meetod tagastab andmed sama tĂŒĂŒbiga, mis on mÀÀratud return vĂ€ljendis.
    • Omandite olemasolu ja nĂ€htavus, millesse pÀÀstetakse, samuti kontrollitud ja tegelike andmetĂŒĂŒpide kontroll, mida kasutatakse omadustes.
    • Parameetrite arvu tĂ€psus, mis edastatakse sprintf/printf kutsumistes stringide vormindamise plokkides.
    • Muutujate olemasolu, arvestades plokke, mis on loodud haru ja tsĂŒkli operaatoritega.
    • Kasutu tĂŒĂŒpide konverteerimine (nĂ€iteks '(string) 'foo'') ja ranged kontrollid ('===' ja '!==') andmete puhul, millel on erinevad tĂŒĂŒbid ja operaatorid, mis alati tagastavad vale.

    PHPStan 1.0 peamised uuendused:

    • Teostatud on kontrollitase „9“, mis teostab „mixed“ tĂŒĂŒpi kasutamise kontrolli, et vĂ”imaldada erinevate tĂŒĂŒpidega parameetrite vastuvĂ”tmist funktsioonis. Üheksas tase tuvastab ebaselged „mixed“ kasutamisviisid, nĂ€iteks vÀÀrtuste edastamine „mixed“ tĂŒĂŒbist teisele tĂŒĂŒbile, „mixed“ tĂŒĂŒbiga meetodite kutsumine ja selle omaduste kasutamine, kuna need vĂ”ivad puududa.
    • Tagastatud vÀÀrtuste identiteedi kontrollimiseks ja sama funktsioonikutsumise haldamiseks kasutatakse annotatsioone @phpstan-pure ja @phpstan-impure.
    • TĂŒĂŒpide analĂŒĂŒs try-catch-finally konstruktsioonides annotatsioonide @throws abil.
    • Teatud, kuid mitte kasutatavate sisemiste (private) omaduste, meetodite ja konstantide tuvastamine.
    • Ühilduvate callback-kutsungite edastamine massiivide töötlemise funktsioonidesse, nagu array_map ja usort.
    • TĂŒĂŒpide kontrollimine puuduvate typehint-annotatsioonide jaoks.
    • Tagatud on tĂŒĂŒbikirjelduste ĂŒhilduvus PHPDocs-iga, mis vĂ”imaldab PHPDocs-is kasutada vigade teadetes esitatud tĂŒĂŒpe.

    Allikas: opennet.ru

  • Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster