Ngemva kweminyaka eyisithupha yokuthuthukiswa, ukukhululwa kokuqala okuzinzile kwe-PHPStan 1.0 analyzer static kwenzeka, okukuvumela ukuthi uthole amaphutha kukhodi ye-PHP ngaphandle kokuyenza nokusebenzisa ukuhlolwa kweyunithi. Ikhodi yephrojekthi ibhalwe nge-PHP futhi isatshalaliswa ngaphansi kwelayisense ye-MIT.
I-analyzer ihlinzeka ngamaleveli okuhlola angu-10, lapho ileveli ngayinye elandelayo inweba amandla wangaphambilini futhi inikeze ukuhlola okuqinile:
Izibonelo zezinkinga ezikhonjiwe:
- Ukuba khona kwamakilasi asetshenziswa isibonelo, ukubamba, ama-typehints nezinye izakhiwo zolimi.
- Ukuba khona nokutholakala kwezindlela nemisebenzi ebizwa, kanye nenani lama-agumenti adlulisiwe.
- Ihlola ukuthi indlela ibuyisela idatha enohlobo olufanayo njengoba luchazwe kusisho sokubuyisela.
- Ukuba khona nokubonakala kwezakhiwo ezifinyelelwayo, nokuhlola izinhlobo zedatha ezimenyezelwe nezangempela ezisetshenziswa kuzakhiwo.
- Inombolo yamapharamitha adluliselwe kumakholi we-sprintf/printf kubhulokhi yokufometha yeyunithi yezinhlamvu ilungile.
- Ukuba khona kwezinto eziguquguqukayo ezicabangela amabhulokhi akhiwe ama-opharetha e-branching nama-loops.
- Ukusakaza kohlobo olungenamsebenzi (isb. "(string) 'foo'") nokuhlola okuqinile ("===" kanye "!==") kudatha enezinhlobo ezihlukene nemisebenzi ehlala ibuya ingamanga.
Izinto ezintsha ezibalulekile ku-PHPStan 1.0:
- Izinga lokuhlola elithi "9" selisetshenzisiwe, elihlola ukusetshenziswa kohlobo "oluxubile", oluhloselwe ukuhlela ukwamukela komsebenzi wamapharamitha anezinhlobo ezahlukene. I-Level XNUMX ikhomba ukusetshenziswa okungaphephile kwe-"mixed", njengokudlula amanani ohlobo "oluxubile" kolunye uhlobo, izindlela zokubiza zohlobo "okuxutshiwe", nokufinyelela izici zayo ngoba kungenzeka zingekho.
- Lawula ukuthi amanani okubuyisela ayafana yini namakholi afanayo usebenzisa izichasiselo ze-@phpstan-pure kanye ne-@phpstan-impure.
- Thayipha ukuhlaziya ku-try-catch-ekugcineni kwakha usebenzisa @throws izichasiselo.
- Ukuhlonzwa kwezakhiwo ezichaziwe kodwa ezingasetshenziswanga zangaphakathi (eziyimfihlo), izindlela nezimo.
- Idlulisa ama-callback angahambelani ezinhlelweni zemisebenzi efana ne-array_map ne-sort.
- Thayipha ukuhlolwa kwezichasiselo zohlobo olungekho.
- Yenza izimemezelo zohlobo ezihambisana ne-PHPDocs, okuvumela izinhlobo ezivela emilayezweni yephutha ukuthi zisetshenziswe ku-PHPDocs.
Source: opennet.ru