Tso tawm ntawm PHPStan 1.0, tus ntsuas zoo li qub rau PHP code

Tom qab rau xyoo ntawm txoj kev loj hlob, thawj qhov kev tso tawm ruaj khov ntawm PHPStan 1.0 tau tshwm sim, uas tso cai rau koj pom qhov yuam kev hauv PHP code yam tsis tau ua nws thiab siv cov kev xeem hauv chav. Txoj haujlwm code yog sau hauv PHP thiab faib raws li MIT daim ntawv tso cai.

Lub ntsuas ntsuas muab 10 qib ntawm kev kuaj xyuas, uas txhua qib tom qab nthuav dav lub peev xwm ntawm qhov dhau los thiab muab cov kev kuaj xyuas nruj dua:

  • Cov kev kuaj xyuas yooj yim, txhais cov chav kawm tsis paub, kev ua haujlwm thiab txoj hauv kev ($ no), tsis muaj kev hloov pauv, thiab dhau qhov tsis raug ntawm cov lus sib cav.
  • Kev txheeb xyuas qhov txawv txav tsis tau txhais, tsis paub txog cov txuj ci khawv koob thiab cov khoom ntawm cov chav kawm nrog __call thiab __get.
  • Kev txheeb xyuas cov txheej txheem tsis paub hauv txhua qhov kev qhia, tsis txwv rau kev hu ntawm $ qhov no. Tshawb xyuas PHPDocs.
  • Tshawb xyuas hom rov qab thiab muab hom rau cov khoom.
  • Kev txheeb xyuas qhov tseeb ntawm "tuag" (tsis tau hu ua) code. Txheeb xyuas qhov piv txwv ntawm kev hu uas ib txwm rov qab tsis raug, "lwm" blocks uas tsis muaj hluav taws, thiab cov lej tom qab rov qab.
  • Tshawb xyuas hom kev sib cav dhau mus rau txoj hauv kev thiab kev ua haujlwm.
  • Ceeb toom txog hom ntawv annotations uas ploj lawm.
  • Kev ceeb toom txog cov hom kev sib koom ua ke tsis raug uas txhais cov kev sau ntawm ob lossis ntau hom.
  • Kev ceeb toom txog kev hu xov tooj thiab nkag mus rau cov khoom nrog hom "nullable".
  • Tshawb xyuas kev siv hom "sib xyaw".

    Piv txwv ntawm cov teeb meem hauv qab tau txheeb xyuas:

    • Lub hav zoov ntawm cov chav kawm siv nyob rau hauv piv txwv li, catch, typehints thiab lwm yam lus constructs.
    • Lub hav zoov thiab muaj cov txheej txheem thiab kev ua haujlwm hu ua, nrog rau cov lus sib cav dhau los.
    • Txheeb xyuas tias txoj kev xa rov qab cov ntaub ntawv nrog tib hom raws li tau hais tseg hauv cov lus rov qab.
    • Lub hav zoov thiab kev pom ntawm cov khoom tau nkag mus, thiab tshawb xyuas cov ntaub ntawv tshaj tawm thiab cov ntaub ntawv tiag tiag siv hauv cov khoom.
    • Tus naj npawb ntawm cov tsis dhau mus rau sprintf / printf hu hauv txoj hlua formatting thaiv yog qhov tseeb.
    • Lub hav zoov ntawm variables noj mus rau hauv tus account blocks tsim los ntawm branching tswv thiab loops.
    • Kev siv yam tsis muaj txiaj ntsig (piv txwv li "(txoj hlua) 'foo'") thiab kev sim nruj ("===" thiab "!==") ntawm cov ntaub ntawv nrog ntau hom thiab operands uas ib txwm rov qab tsis tseeb.

    Cov kev hloov tshiab tseem ceeb hauv PHPStan 1.0:

    • Cov qib "9" kuaj tau raug siv, uas kuaj xyuas kev siv hom "sib xyaw", npaj rau kev teeb tsa lub luag haujlwm txais tos ntawm cov tsis muaj ntau hom. Qib XNUMX qhia txog kev siv tsis zoo ntawm "sib xyaw", xws li dhau qhov txiaj ntsig ntawm hom "sib xyaw" mus rau lwm hom, hu rau cov txheej txheem ntawm hom "sib xyaw", thiab nkag mus rau nws cov khoom vim lawv yuav tsis muaj nyob.
    • Tswj xyuas seb cov nqi xa rov qab zoo li cas rau kev hu xov tooj zoo ib yam siv @phpstan-pure thiab @phpstan-impure annotations.
    • Hom kev tsom xam hauv sim-catch-thaum kawg tsim siv @throws annotations.
    • Kev txheeb xyuas cov ntsiab lus tab sis tsis siv sab hauv (private) cov khoom, txoj hauv kev thiab qhov tsis tu ncua.
    • Dhau incompatible callbacks rau array muaj nuj nqi xws li array_map thiab usort.
    • Hom kev tshuaj xyuas rau cov ntawv nyeem uas ploj lawm.
    • Ua hom ntawv tshaj tawm tau sib xws nrog PHPDocs, tso cai rau hom los ntawm cov lus yuam kev los siv hauv PHPDocs.

    Tau qhov twg los: opennet.ru

  • Ntxiv ib saib