Kuburitswa kwe PHPStan 1.0, static analyzer yePHP kodhi

Mushure memakore matanhatu ebudiriro, yekutanga yakagadzikana kuburitswa kweiyo static analyzer PHPStan 1.0 yakaitika, iyo inokutendera iwe kuti uwane zvikanganiso muPHP kodhi usingaite uye kushandisa bvunzo dzeyuniti. Iyo kodhi yeprojekiti yakanyorwa muPHP uye yakagoverwa pasi peMIT rezinesi.

Iyo analyzer inopa gumi mazinga ekutarisa, mune imwe neimwe inotevera nhanho inowedzera kugona kweiyo yapfuura uye inopa yakanyanya kuomesesa cheki:

  • Macheki ekutanga, kutsanangura makirasi asingazivikanwe, mabasa uye nzira ($ izvi), zvisingatsananguriki zvakasiyana, uye kudarika nhamba isiriyo yenharo.
  • Kuziva zvingangove zvisina kutsanangurwa zvinosiyana, zvisingazivikanwe mashiripiti nzira uye zvivakwa zvekirasi ne __call uye __get.
  • Kuonekwa kwenzira dzisingazivikanwe mumataurirwo ese, kwete kungoita mafoni kuburikidza ne $ this. Kutarisa PHPDocs.
  • Kutarisa mhando dzekudzoka uye kugovera mhando kune zvivakwa.
  • Chiziviso che "vakafa" (chisina kumbodanwa) kodhi. Ziva muenzaniso wemafoni anogara achidzoka enhema, "zvimwe" zvivharo zvisingambobhoti, uye kodhi mushure mekudzoka.
  • Kutarisa mhando dzenharo dzakapfuudzwa kune nzira uye mabasa.
  • Yambiro pamusoro pekushaikwa kwerudzi rwemashoko ezvirevo.
  • Yambiro pamusoro pemhando dzemubatanidzwa dzisiridzo dzinotsanangura kuunganidzwa kwemhando mbiri kana kupfuura.
  • Yambiro nezve nzira dzekufona uye kuwana zvivakwa zvine mhando "nullable".
  • Kuongorora kushandiswa kwe "mixed" type.

    Mienzaniso yematambudziko makuru akaonekwa:

    • Kuvepo kwemakirasi anoshandiswa semuenzaniso, kubata, mataipi uye mamwe magadzirirwo emitauro.
    • Kuvapo uye kuwanikwa kwemaitiro uye mabasa anonzi, pamwe nenhamba yenharo dzakapfuura.
    • Kutarisa kuti nzira inodzosa data nemhando imwechete sekutsanangurwa mukutaura kwekudzoka.
    • Kuvapo uye kuoneka kwezvivakwa zviri kuwanikwa, uye kutarisa yakaziviswa uye chaiyo data mhando dzinoshandiswa mumidziyo.
    • Huwandu hwema paramita akapfuudzwa kune sprintf/printf mafoni mutambo yekufometa block ndeyechokwadi.
    • Kuvepo kwezvakasiyana zvinotora muakaundi mabhuroki akaumbwa nemabranchi anoshanda uye zvishwe.
    • Kukandwa kwemhando dzisina basa (semuenzaniso "(tambo) 'foo'") uye bvunzo dzakasimba ("===" uye "!==") pane data rine mhando dzakasiyana uye maoperands anogara achidzoka enhema.

    Makiyi ekuvandudza muPHStan 1.0:

    • Iyo "9" cheki cheki yakashandiswa, iyo inotarisa kushandiswa kweiyo "yakavhenganiswa" mhando, inotarisirwa kuronga basa rekugamuchira maparamita nemhando dzakasiyana. Level XNUMX inoratidza kushandiswa kusina kuchengetedzeka kwe "mixed", sekupfuudza kukosha kwemhando "yakasanganiswa" kune imwe mhando, kudana nzira dzemhando "yakasanganiswa", uye kuwana zvivakwa zvayo nekuti zvinogona kunge zvisipo.
    • Dzora kana kukosha kwekudzoka kwakafanana kune imwechete basa mafoni uchishandisa iyo @phpstan-pure uye @phpstan-yakasviba zvirevo.
    • Nyora ongororo mukuedza-kubata-pekupedzisira inovaka uchishandisa @throws annotations.
    • Kuzivikanwa kwezvakatsanangurwa asi zvisina kushandiswa zvemukati (zvakavanzika) zvivakwa, nzira uye zvimiro.
    • Kupfuura zvisingaenderane macallbacks kune array mabasa akadai array_map uye usort.
    • Nyora ongororo yezvisina kutaipa zvirevo.
    • Yakagadzirwa zviziviso zvemhando inoenderana nePHPDocs, ichibvumira mhando kubva kumashoko ekukanganisa kuti ashandiswe muPHPDocs.

    Source: opennet.ru

  • Voeg