Scaoileadh PHPStan 1.0, anailísí statach do chód PHP

Tar éis sé bliana d'fhorbairt, tharla an chéad scaoileadh cobhsaí den anailísí statach PHPStan 1.0, rud a ligeann duit earráidí a aimsiú i gcód PHP gan é a fhorghníomhú agus tástálacha aonaid a úsáid. Tá cód an tionscadail scríofa i PHP agus dáilte faoi cheadúnas MIT.

Soláthraíonn an anailísí 10 leibhéal seiceála, ina leathnaíonn gach leibhéal ina dhiaidh sin cumais an chinn roimhe sin agus ina soláthraíonn sé seiceálacha níos déine:

  • Seiceálacha bunúsacha, ag sainiú aicmí, feidhmeanna agus modhanna anaithnide ($seo), athróga neamhshainithe, agus an líon mícheart argóintí a rith.
  • Athróga neamhshainithe b’fhéidir a aithint, modhanna draíochta anaithnide agus airíonna na ranganna le __call agus __get.
  • Modhanna anaithnide a bhrath i ngach slonn, gan a bheith teoranta do ghlaonna trí $seo. PHPDocs á seiceáil.
  • Cineálacha tuairisceáin a sheiceáil agus cineálacha a shannadh d'airíonna.
  • Aitheantas bunúsach an chóid “marbh” (níor tugadh air). Sainaithin samplaí de ghlaonna a fhilleann i gcónaí bloic bhréagacha, "eile" nach dtiteann riamh, agus cód tar éis filleadh.
  • Seiceáil na cineálacha argóintí a cuireadh ar aghaidh chuig modhanna agus feidhmeanna.
  • Rabhadh maidir le nótaí cineál faisnéise atá in easnamh.
  • Rabhadh faoi chineálacha aontas mícheart a shainíonn bailiúcháin de dhá chineál nó níos mó.
  • Rabhadh faoi mhodhanna glaonna agus rochtain a fháil ar airíonna le cineálacha "nullable".
  • Ag seiceáil úsáid an chineáil "measctha".

    Samplaí d’fhadhbanna bunúsacha a aithníodh:

    • Ranganna a úsáidtear mar shampla de, gabháil, cló-leideanna agus tógálacha teanga eile a bheith ann.
    • An bhfuil agus infhaighteacht na modhanna agus feidhmeanna ar a dtugtar, chomh maith le líon na n-argóintí a ritheadh.
    • Ag seiceáil go dtugann an modh sonraí ar ais leis an gcineál céanna atá sainmhínithe sa slonn tuairisceáin.
    • A bheith ann agus infheictheacht na n-airíonna a bhfuil rochtain orthu, agus na cineálacha sonraí dearbhaithe agus iarbhír a úsáidtear sna hairíonna a sheiceáil.
    • Tá líon na bparaiméadar a cuireadh ar aghaidh chuig glaonna sprintf/printf sa bhloc formáidithe téad cruinn.
    • Athróga a bheith ann agus bloic déanta ag oibreoirí brainseach agus lúba á gcur san áireamh.
    • Teilgin cineál gan úsáid (m.sh. "(teaghrán) 'foo'") agus tástálacha diana ("===" agus "!==") ar shonraí le cineálacha éagsúla agus feidhmchláir a fhilleann bréagach i gcónaí.

    Príomhnuálaíochtaí i PHPStan 1.0:

    • Tá an leibhéal seiceála “9” curtha i bhfeidhm, a sheiceálann úsáid an chineáil “measctha”, atá beartaithe chun glacadh paraiméadair na feidhme le cineálacha éagsúla a eagrú. Aithníonn Leibhéal XNUMX úsáidí neamhshábháilte a bhaineann le "measctha", mar shampla luachanna den chineál "measctha" a chur ar aghaidh go cineál eile, modhanna den chineál "measctha" a ghlaoch, agus rochtain a fháil ar a chuid maoine toisc go bhféadfadh sé nach bhfuil siad ann.
    • Rialú cibé an bhfuil luachanna fillte comhionann le haghaidh glaonna feidhme comhionann ag baint úsáide as na nótaí @phpstan-pure agus @phpstan-impure.
    • Clóscríobh anailís i dtógálacha iarracht-ghabháil ar deireadh ag baint úsáide as nótaí @throws.
    • Airíonna, modhanna agus tairisigh inmheánacha (príobháideacha) sainithe ach nár úsáideadh a shainaithint.
    • Glaonna neamh-chomhoiriúnacha a chur ar aghaidh chuig feidhmeanna eagar amhail array_map agus usort.
    • Cigireacht cineáil le haghaidh nótaí clóchlóite in easnamh.
    • Déanta dearbhuithe cineáil comhoiriúnach le PHPDocs, a cheadaíonn cineálacha ó theachtaireachtaí earráide a úsáid i PHPDocs.

    Foinse: oscailtenet.ru

  • Add a comment