Itusilẹ ti PHPStan 1.0, olutupalẹ aimi fun koodu PHP

Lẹhin ọdun mẹfa ti idagbasoke, idasilẹ iduroṣinṣin akọkọ ti atunnkanka aimi PHPStan 1.0 waye, eyiti o fun ọ laaye lati wa awọn aṣiṣe ni koodu PHP laisi ṣiṣe rẹ ati lilo awọn idanwo ẹyọkan. Koodu ise agbese ti kọ ni PHP ati pinpin labẹ iwe-aṣẹ MIT.

Oluyanju pese awọn ipele 10 ti iṣayẹwo, ninu eyiti ipele kọọkan ti o tẹle faagun awọn agbara ti iṣaaju ati pese awọn sọwedowo okun diẹ sii:

  • Awọn sọwedowo ipilẹ, asọye awọn kilasi aimọ, awọn iṣẹ ati awọn ọna ($ eyi), awọn oniyipada aipin, ati gbigbe nọmba awọn ariyanjiyan ti ko tọ si.
  • Idamo o ṣee aisọye oniyipada, aimọ ọna idan ati ini ti awọn kilasi pẹlu __ipe ati __gba.
  • Ṣiṣawari awọn ọna aimọ ni gbogbo awọn ikosile, ko ni opin si awọn ipe nipasẹ $eyi. Ṣiṣayẹwo PHPDocs.
  • Ṣiṣayẹwo awọn oriṣi ipadabọ ati fifun awọn iru si awọn ohun-ini.
  • Idanimọ ipilẹ ti koodu “ku” (ko pe rara) koodu. Ṣe idanimọ apẹẹrẹ ti awọn ipe ti o pada eke nigbagbogbo, awọn bulọọki “miran” ti ko ina, ati koodu lẹhin ipadabọ.
  • Ṣiṣayẹwo awọn iru awọn ariyanjiyan ti o kọja si awọn ọna ati awọn iṣẹ.
  • Ikilọ nipa sisọnu iru alaye alaye.
  • Ikilọ nipa awọn iru iṣọkan ti ko tọ ti o ṣalaye awọn akojọpọ ti awọn oriṣi meji tabi diẹ sii.
  • Ikilọ nipa awọn ọna pipe ati iraye si awọn ohun-ini pẹlu awọn iru “asan”.
  • Ṣiṣayẹwo lilo iru “adalupọ”.

    Awọn apẹẹrẹ ti awọn iṣoro abẹlẹ ti a mọ:

    • Aye ti awọn kilasi ti a lo ninu apẹẹrẹ, apeja, awọn oriṣi ati awọn itumọ ede miiran.
    • Aye ati wiwa awọn ọna ati awọn iṣẹ ti a pe, bakanna bi nọmba awọn ariyanjiyan ti o kọja.
    • Ṣiṣayẹwo pe ọna naa da data pada pẹlu iru kanna bi a ti ṣalaye ninu ikosile ipadabọ.
    • Aye ati hihan ti awọn ohun-ini ti n wọle, ati ṣayẹwo awọn ikede ti a kede ati awọn iru data gangan ti a lo ninu awọn ohun-ini naa.
    • Nọmba awọn paramita ti o kọja si awọn ipe sprintf/printf ni bulọọki ọna kika okun jẹ deede.
    • Aye ti awọn oniyipada mu sinu iroyin awọn bulọọki ti o ṣẹda nipasẹ awọn oniṣẹ ẹka ati awọn losiwajulosehin.
    • Simẹnti iru ti ko wulo (fun apẹẹrẹ "(okun) 'foo'") ati awọn idanwo ti o muna ("==="ati"!==") lori data pẹlu awọn oriṣi ati awọn operands ti o da eke pada nigbagbogbo.

    Awọn imotuntun bọtini ni PHPStan 1.0:

    • Ipele ayẹwo “9” ti ṣe imuse, eyiti o ṣayẹwo lilo iru “adalupọ”, ti a pinnu fun siseto gbigba iṣẹ ti awọn paramita pẹlu awọn oriṣi oriṣiriṣi. Ipele XNUMX ṣe idanimọ awọn lilo ti ko ni aabo ti “adapọ”, gẹgẹbi gbigbe awọn iye ti iru “adapọ” si oriṣi miiran, awọn ọna pipe ti iru “adapọ” ati iwọle si awọn ohun-ini rẹ nitori wọn le ma wa.
    • Ṣakoso boya awọn iye ipadabọ jẹ aami kanna fun awọn ipe iṣẹ kanna ni lilo awọn alaye @phpstan-pure ati @phpstan-impure.
    • Iru onínọmbà ni try-catch-ipari awọn itumọ ti lilo @throws annotations.
    • Idanimọ ti asọye ṣugbọn awọn ohun-ini inu inu (ikọkọ) ti a ko lo, awọn ọna ati awọn iduro.
    • Gbigbe awọn ipe pada ti ko ni ibaramu si awọn iṣẹ akanṣe gẹgẹbi array_map ati usort.
    • Iru ayewo fun sonu typehint annotations.
    • Awọn ikede iru ti o ni ibamu pẹlu PHPDocs, gbigba awọn iru lati awọn ifiranṣẹ aṣiṣe lati ṣee lo ni PHPDocs.

    orisun: opennet.ru

  • Fi ọrọìwòye kun