Ukukhishwa kwe-PHPStan 1.0, isihlaziyi esimile sekhodi ye-PHP

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:

  • Ukuhlola okuyisisekelo, okuchaza izigaba ezingaziwa, imisebenzi nezindlela ($this), okuguquguqukayo okungachazwanga, nokudlulisa inombolo engalungile yama-agumenti.
  • Ukuhlonza okuguquguqukayo okungenzeka okungachazwanga, izindlela zomlingo ezingaziwa nezakhiwo zamakilasi ngokuthi __call kanye nokuthi __get.
  • Ukutholwa kwezindlela ezingaziwa kuzo zonke izinkulumo, akupheleli ezingcingweni nge-$this. Ihlola i-PHPDocs.
  • Ihlola izinhlobo zokubuyisela nokwabela izinhlobo ezakhiweni.
  • Ukuhlonza okuyisisekelo kwekhodi "efile" (engakaze ibizwe). Khomba izehlakalo zezingcingo ezihlala zibuya zingamanga, amabhulokhi "okunye" angaqhumi, bese ubhala ikhodi ngemva kokubuyisela.
  • Ihlola izinhlobo zezimpikiswano ezidluliselwe ezindleleni nemisebenzi.
  • Isexwayiso mayelana nezichasiselo zolwazi olungekho.
  • Isexwayiso mayelana nezinhlobo zezinyunyana ezingalungile ezichaza amaqoqo ezinhlobo ezimbili noma ngaphezulu.
  • Isexwayiso mayelana nezindlela zokushaya kanye nokufinyelela izakhiwo ezinezinhlobo "ezingasebenzi".
  • Ihlola ukusetshenziswa kohlobo "oluxubile".

    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

  • Engeza amazwana