Hoʻokuʻu ʻia ʻo PHPStan 1.0, kahi mea loiloi static no ka code PHP

Ma hope o ʻeono mau makahiki o ka hoʻomohala ʻana, ua hoʻokuʻu ʻia ka hoʻokuʻu paʻa mua o ka static analyzer PHPStan 1.0, kahi e hiki ai iā ʻoe ke ʻike i nā hewa i ka code PHP me ka ʻole o ka hoʻokō ʻana a me ka hoʻohana ʻana i nā hoʻokolohua unit. Ua kākau ʻia ke code papahana ma PHP a hāʻawi ʻia ma lalo o ka laikini MIT.

Hāʻawi ka mea loiloi i nā pae 10 o ka nānā ʻana, kahi e hoʻonui ai kēlā me kēia pae hope i nā hiki o ka mea ma mua a hāʻawi i nā loiloi koʻikoʻi:

  • Nā loiloi kumu, ka wehewehe ʻana i nā papa ʻike ʻole ʻia, nā hana a me nā ʻano ($ kēia), nā ʻano like ʻole, a me ka hāʻawi ʻana i ka helu kuhi hewa.
  • Ka ʻike ʻana i nā mea hoʻololi ʻole i wehewehe ʻia, nā ʻano hana kilokilo ʻike ʻole a me nā waiwai o nā papa me __call a me __get.
  • ʻO ka ʻike ʻana i nā ʻano ʻike ʻole ma nā ʻōlelo a pau, ʻaʻole i kaupalena ʻia i nā kelepona ma o $this. Ke nānā nei i nā PHPDocs.
  • Ke nānā nei i nā ʻano hoʻihoʻi a me ka hāʻawi ʻana i nā ʻano i nā waiwai.
  • ʻIke kumu o ke code "make" (ʻaʻole i kapa ʻia). E ʻike i nā kelepona e hoʻihoʻi mau ana i ka hoʻopunipuni, nā poloka "ē aʻe" ʻaʻole ahi, a me ke code ma hope o ka hoʻi ʻana.
  • Ke nānā ʻana i nā ʻano hoʻopaʻapaʻa i hāʻawi ʻia i nā ala a me nā hana.
  • E aʻo ana e pili ana i nā ʻano hōʻike ʻike e nalowale ana.
  • E aʻo e pili ana i nā ʻano union hewa e wehewehe ana i nā hōʻiliʻili o ʻelua a ʻoi aku paha.
  • E aʻo ana e pili ana i ke kelepona ʻana a me ke komo ʻana i nā waiwai me nā ʻano "nullable".
  • Ke nānā nei i ka hoʻohana ʻana i ke ʻano "mixed".

    ʻO nā hiʻohiʻona o nā pilikia kumu i ʻike ʻia:

    • ʻO ka noho ʻana o nā papa i hoʻohana ʻia ma ka laʻana, hopu, typehints a me nā hana ʻōlelo ʻē aʻe.
    • ʻO ke ola a me ka loaʻa ʻana o nā ʻano a me nā hana i kapa ʻia, a me ka helu o nā manaʻo i hala.
    • E hōʻoia i ka hoʻihoʻi ʻana o ke ala i ka ʻikepili me ke ʻano like me ka wehewehe ʻana i ka ʻōlelo hoʻihoʻi.
    • ʻO ka noho ʻana a me ka ʻike ʻia o nā waiwai i loaʻa, a me ka nānā ʻana i nā ʻano ʻikepili i hōʻike ʻia a i hoʻohana ʻia i loko o nā waiwai.
    • Ua pololei ka helu o nā ʻāpana i hāʻawi ʻia i nā kelepona sprintf/printf ma ka poloka hoʻopono string.
    • ʻO ka noho ʻana o nā mea hoʻololi e noʻonoʻo ana i nā poloka i hana ʻia e nā mea hoʻohana lālā a me nā puka lou.
    • ʻO nā kiola ʻano pono ʻole (e laʻa. "(string) 'foo'") a me nā hoʻāʻo koʻikoʻi ("===" a me "!==") ma nā ʻikepili me nā ʻano a me nā operand e hoʻihoʻi mau i ka wahaheʻe.

    Nā hana hou nui ma PHPStan 1.0:

    • Ua hoʻokō ʻia ka pae nānā "9", e nānā ana i ka hoʻohana ʻana i ke ʻano "mixed", i manaʻo ʻia no ka hoʻonohonoho ʻana i ka hoʻokipa ʻana o ka hana i nā ʻāpana me nā ʻano like ʻole. Hōʻike ka pae XNUMX i nā hoʻohana palekana ʻole o ka "mixed", e like me ka hāʻawi ʻana i nā waiwai o ke ʻano "mixed" i kahi ʻano ʻē aʻe, ke kāhea ʻana i nā ʻano o ke ʻano "mixed", a me ke komo ʻana i kāna mau waiwai no ka mea ʻaʻole paha.
    • E hoʻomalu inā like nā helu hoʻihoʻi no nā kelepona hana like me ka hoʻohana ʻana i nā hōʻike @phpstan-pure a me @phpstan-impure.
    • E ʻano ka nānā ʻana i nā hana hoʻāʻo-hopu-hope me ka hoʻohana ʻana i nā hōʻike @throws.
    • Ka ʻike ʻana i nā waiwai kūloko i wehewehe ʻia akā hoʻohana ʻole ʻia, nā ʻano a me nā mea mau.
    • Ke hāʻawi ʻana i nā kelepona like ʻole i nā hana hoʻonohonoho e like me array_map a me usort.
    • Ka nānā ʻana no nā ʻano hōʻike typehint.
    • Hana ʻia nā ʻano hoʻolaha i kūpono me PHPDocs, e ʻae ana i nā ʻano mai nā memo hewa e hoʻohana ʻia ma PHPDocs.

    Source: opennet.ru

  • Pākuʻi i ka manaʻo hoʻopuka