Emva kweminyaka emithandathu yophuhliso, ukukhululwa kokuqala okuzinzile kwe-static analyzer PHPStan 1.0 kwenzeka, okukuvumela ukuba ufumane iimpazamo kwikhowudi ye-PHP ngaphandle kokuyenza kunye nokusebenzisa iimvavanyo zeyunithi. Ikhowudi yeprojekthi ibhalwe kwi-PHP kwaye isasazwe phantsi kwelayisenisi ye-MIT.
I-analyzer ibonelela ngamanqanaba e-10 okukhangela, apho inqanaba ngalinye elilandelayo likhulisa amandla omntu odlulileyo kwaye libonelela ngokujonga okungqongqo ngakumbi:
Imizekelo yeengxaki eziphambili ezichongiweyo:
- Ubukho beeklasi ezisetyenziswayo kumzekelo, ukubamba, ukuchwetheza kunye nolwakhiwo lolunye ulwimi.
- Ubukho kunye nokufumaneka kweendlela kunye nemisebenzi ebizwa, kunye nenani leengxoxo ezidlulisiweyo.
- Ukukhangela ukuba indlela ibuyisela idatha kunye nohlobo olufanayo njengoko kuchaziwe kwintetho yembuyekezo.
- Ubukho kunye nokubonakala kweepropati ezifikelelwayo, kunye nokutshekisha iintlobo zedatha ezibhengeziweyo kunye nezichanekileyo ezisetyenziswa kwiipropati.
- Inani leeparamitha ezidluliselwe kwi-sprintf/printf iminxeba kwibhloko yokufomatha umtya ichanekile.
- Ubukho bezinto eziguquguqukayo ezithathela ingqalelo iibhloko ezenziwe ngabaqhubi be-branching kunye neelophu.
- Udidi olungasebenziyo luphosa (umzekelo "(umtya) 'foo'") kunye novavanyo olungqongqo ("===" kunye "!==") kwidatha eneentlobo ezahlukeneyo kunye nee-operands ezihlala zibuyisela bubuxoki.
Izinto ezintsha eziphambili kwi-PHPStan 1.0:
- Inqanaba lokutshekisha "9" liphunyeziwe, elihlola ukusetyenziswa kohlobo "oluxutyiweyo", olujoliswe ekuququzeleleni ukwamkelwa komsebenzi weeparamitha ezineentlobo ezahlukeneyo. Inqanaba le-XNUMX lichonga ukusetyenziswa okungakhuselekanga kwe "mixed", njengokudlula amaxabiso ohlobo "oluxutyiweyo" kolunye uhlobo, iindlela zokubiza uhlobo "oluxutyiweyo", kunye nokufikelela kwiipropathi zayo kuba zisenokungabikho.
- Lawula ukuba amaxabiso embuyekezo ayafana na kwiifowuni zemisebenzi efanayo usebenzisa i-@phpstan-pure kunye ne @phpstan-inkcazo engcolileyo.
- Uhlobo lohlalutyo kwi-try- catch-ekugqibeleni yakha usebenzisa i-@throws annotations.
- Ukuchongwa kweempawu ezichaziweyo kodwa ezingasetyenziswanga zangaphakathi (zabucala), iindlela kunye nesigxina.
- Ukugqithiswa kwee-callbacks ezingahambelaniyo kuluhlu lwemisebenzi efana ne-array_map kunye nosort.
- Chwetheza uhlolo lwezichasiselo zochwethezo ezingekhoyo.
- Yenza izibhengezo zohlobo oluhambelana ne-PHPDocs, ezivumela iindidi ezivela kwimiyalezo yempazamo ukuba isetyenziswe kwi-PHPDocs.
umthombo: opennet.ru