Kutulutsidwa kwa PHPStan 1.0, static analyzer ya PHP code

Pambuyo pazaka zisanu ndi chimodzi za chitukuko, kutulutsidwa koyamba kokhazikika kwa static analyzer PHPStan 1.0 kunachitika, zomwe zimakulolani kuti mupeze zolakwika mu PHP code popanda kuichita ndi kugwiritsa ntchito mayesero a unit. Khodi ya polojekitiyi idalembedwa mu PHP ndikugawidwa pansi pa layisensi ya MIT.

Analyzer imapereka milingo 10 yowunika, momwe gawo lililonse lotsatira limakulitsa luso lalo lapitalo ndikupereka macheke okhwima:

  • Macheke oyambira, kufotokozera makalasi osadziwika, ntchito ndi njira ($ izi), zosintha zosazindikirika, ndikudutsa mikangano yolakwika.
  • Kuzindikiritsa zosinthika zomwe sizingadziwike, njira zamatsenga zosadziwika ndi zida zamakalasi okhala ndi __call ndi __get.
  • Kuzindikira njira zosadziwika m'mawu onse, osangokhala mafoni kudzera pa $thi. Kuyang'ana PHPDocs.
  • Kuyang'ana mitundu yobwerera ndikugawa mitundu ku katundu.
  • Chizindikiritso choyambirira cha "akufa" (osatchulidwapo) code. Dziwani zitsanzo za mafoni omwe nthawi zonse amabwerera zabodza, "zina" zimatchinga zomwe sizimawomba, ndi ma code pambuyo pobwerera.
  • Kuwona mitundu ya mikangano yoperekedwa ku njira ndi ntchito.
  • Chenjezo losowa zofotokozera zamtundu.
  • Chenjezo la mitundu yolakwika ya mgwirizano yomwe imatanthawuza zosonkhanitsidwa zamitundu iwiri kapena kuposerapo.
  • Chenjezo la njira zoyimbira ndi kupeza katundu wokhala ndi mitundu "yosasinthika".
  • Kuyang'ana kugwiritsa ntchito mtundu wa "mixed".

    Zitsanzo za zovuta zomwe zadziwika:

    • Kukhalapo kwa makalasi omwe amagwiritsidwa ntchito pochita, kugwira, zilembo ndi zilankhulo zina.
    • Kukhalapo ndi kupezeka kwa njira ndi ntchito zotchedwa, komanso chiwerengero cha zifukwa zomwe zadutsa.
    • Kuyang'ana kuti njirayo imabwezera deta ndi mtundu womwewo monga momwe tafotokozera m'mawu obwereza.
    • Kukhalapo ndi kuwonekera kwa katundu omwe akupezekapo, ndikuyang'ana mitundu yolengezedwa ndi yeniyeni ya deta yomwe imagwiritsidwa ntchito pazinthuzo.
    • Chiwerengero cha magawo omwe amaperekedwa ku mafoni a sprintf/printf mu chipika chojambulira zingwe ndicholondola.
    • Kukhalapo kwa zosinthika poganizira midadada yopangidwa ndi oyendetsa nthambi ndi malupu.
    • Mitundu yopanda ntchito (monga "(chingwe) 'foo'") ndi kuyesa mwamphamvu ("===" ndi "!==") pa data yokhala ndi mitundu yosiyanasiyana ndi machitidwe omwe nthawi zonse amabwerera zabodza.

    Zatsopano zazikulu mu PHPStan 1.0:

    • Chiwongola dzanja cha "9" chakhazikitsidwa, chomwe chimayang'ana kugwiritsidwa ntchito kwa mtundu "wosakanizika", womwe umapangidwira kukonzekera kulandila kwa ntchito kwa magawo ndi mitundu yosiyanasiyana. Level XNUMX ikuwonetsa kugwiritsidwa ntchito kosayenera kwa "osakanikirana", monga kupititsa patsogolo mtundu "wosakanizika" ku mtundu wina, kuyitana njira zamtundu "zosakanizika", ndikupeza katundu wake chifukwa mwina kulibe.
    • Lamulirani ngati mayendedwe obwerera ali ofanana pama foni omwe amafanana pogwiritsa ntchito @phpstan-pure ndi @phpstan-impre notations.
    • Lembani kusanthula mukuyesera-kugwira-pomaliza kumanga pogwiritsa ntchito @throws annotations.
    • Kuzindikiritsa katundu wamkati (wachinsinsi) wofotokozedwa koma wosagwiritsidwa ntchito, njira ndi zokhazikika.
    • Kupititsa ma callbacks osagwirizana kumagulu osiyanasiyana monga array_map ndi usort.
    • Lowetsani kuyendera kwa zilembo zosowa.
    • Anapanga zolengeza zamtundu zogwirizana ndi PHPDocs, kulola mitundu kuchokera ku mauthenga olakwika kuti agwiritsidwe ntchito mu PHPDocs.

    Source: opennet.ru

  • Kuwonjezera ndemanga