Ho lokolloa ha PHPStan 1.0, analyzer e tsitsitseng bakeng sa khoutu ea PHP

Kamora lilemo tse ts'eletseng tsa nts'etsopele, tokollo ea pele e tsitsitseng ea static analyzer PHPStan 1.0 e etsahetse, e u lumellang ho fumana liphoso ho khoutu ea PHP ntle le ho e etsa le ho sebelisa liteko tsa yuniti. Khoutu ea projeke e ngotsoe ka PHP mme e ajoa tlasa laesense ea MIT.

Analyzer e fana ka maemo a 10 a tlhahlobo, moo boemo bo bong le bo bong bo latelang bo holisang bokhoni ba e fetileng mme bo fana ka licheke tse thata haholoanyane:

  • Licheke tsa motheo, ho hlalosa lihlopha tse sa tsejoeng, mesebetsi le mekhoa ($ ena), mefuta e sa hlalosoang, le ho fetisa palo e fosahetseng ea likhang.
  • Ho tsebahatsa mefuta e ka bang teng e sa hlalosoang, mekhoa e sa tsejoeng ea boselamose le thepa ea litlelase ka __call le __get.
  • Ho fumanoa mekhoa e sa tsejoeng lipolelong tsohle, ha e felle feela mehala ka $thi. Ho hlahloba PHPDocs.
  • Ho hlahloba mefuta ea ho khutlisa le ho abela mefuta ho thepa.
  • Boitsebiso ba motheo ba khoutu "ba shoeleng" (ha bo bitsoe). Hlalosa mehlala ea mehala e lulang e khutlisa e le leshano, "tse ling" li-block tse sa llang, 'me u khoute ka mor'a ho khutla.
  • Ho hlahloba mefuta ea likhang tse fetiselitsoeng ho mekhoa le mesebetsi.
  • Tlhokomeliso mabapi le litlhaloso tsa mofuta o sieo.
  • Tlhokomeliso ka mefuta e sa nepahalang ea mekhatlo e hlalosang pokello ea mefuta e 'meli kapa ho feta.
  • Tlhokomeliso mabapi le mekhoa ea ho letsetsa le ho fihlella thepa ka mefuta e "nullable".
  • Ho lekola tšebeliso ea mofuta oa "motsoako".

    Mehlala ea mathata a ka sehloohong a tšoailoeng:

    • Ho ba teng ha lihlopha tse sebelisoang ka mohlala, ho tšoasa, ho thaepa le lihahi tsa lipuo tse ling.
    • Ho ba teng le ho fumaneha ha mekhoa le mesebetsi e bitsoang, hammoho le palo ea likhang tse fetisitsoeng.
    • Ho hlahloba hore na mokhoa o khutlisa data ka mofuta o tšoanang le o hlalositsoeng polelong ea ho khutlisa.
    • Ho ba teng le ponahalo ea thepa e fihlellehang, le ho lekola mefuta e phatlalalitsoeng le ea nnete e sebelisoang meahong.
    • Palo ea li-parameter tse fetiselitsoeng ho mehala ea sprintf/printf ka har'a boloko ba fometa ea likhoele e nepahetse.
    • Ho ba teng ha mefuta e fapaneng ho ela hloko li-blocks tse entsoeng ke li-branching operators le loops.
    • Mefuta e se nang thuso (mohlala "(string) 'foo'") le liteko tse thata ("===" le "!==") ho data e nang le mefuta e fapaneng le lits'ebetso tse lulang li le leshano.

    Litlhahiso tsa bohlokoa ho PHPStan 1.0:

    • Tekanyo ea "9" ea ho hlahloba e kentsoe ts'ebetsong, e hlahlobang tšebeliso ea "motsoako" oa mofuta, o reretsoeng ho hlophisa kamohelo ea mosebetsi oa li-parameter tse nang le mefuta e sa tšoaneng. Level XNUMX e supa ts'ebeliso e sa bolokehang ea "motsoako", joalo ka ho fetisa boleng ba mofuta "o tsoakiloeng" ho mofuta o mong, ho bitsa mekhoa ea mofuta "o tsoakiloeng", le ho fihlella thepa ea eona hobane e kanna ea se be teng.
    • Laola hore na litekanyetso tsa ho khutlisa li ts'oana bakeng sa mehala e ts'oanang e sebelisang litlhaloso tsa @phpstan-pure le @phpstan-impure.
    • Tlanya tlhahlobo ho leka-ho tšoasa-qetellong u sebelisa @throws annotations.
    • Ho tsebahatsa thepa ea ka hare (ea poraefete) e hlalositsoeng empa e sa sebelisoe, mekhoa le li-constants.
    • Ho fetisa li-callback tse sa tsamaisaneng le mesebetsi e fapaneng joalo ka array_map le usort.
    • Tlhahlobo ea mofuta bakeng sa litlhaloso tsa mongolo o sieo.
    • E entse liphatlalatso tsa mofuta o lumellanang le PHPDocs, e lumellang mefuta e tsoang melaetsa ea liphoso hore e sebelisoe ho PHPDocs.

    Source: opennet.ru

  • Eketsa ka tlhaloso