Ar Γ΄l chwe blynedd o ddatblygiad, cynhaliwyd y datganiad sefydlog cyntaf o'r dadansoddwr statig PHPStan 1.0, sy'n eich galluogi i ddod o hyd i wallau yn y cod PHP heb ei weithredu a defnyddio profion uned. Mae cod y prosiect wedi'i ysgrifennu yn PHP a'i ddosbarthu o dan y drwydded MIT.
Mae'r dadansoddwr yn darparu 10 lefel o wirio, lle mae pob lefel ddilynol yn ehangu galluoedd yr un flaenorol ac yn darparu gwiriadau llymach:
Enghreifftiau o broblemau sylfaenol a nodwyd:
- Bodolaeth dosbarthiadau a ddefnyddir er enghraifft, dal, teipiau a lluniadau iaith eraill.
- Bodolaeth ac argaeledd dulliau a swyddogaethau a elwir, yn ogystal Γ’ nifer y dadleuon a basiwyd.
- Gwirio bod y dull yn dychwelyd data gyda'r un math ag a ddiffinnir yn y mynegiad dychwelyd.
- Bodolaeth a gwelededd yr eiddo y ceir mynediad iddynt, a gwirio'r mathau o ddata datganedig a gwirioneddol a ddefnyddir yn yr eiddo.
- Mae nifer y paramedrau a drosglwyddwyd i alwadau sprintf/printf yn y bloc fformatio llinyn yn gywir.
- Bodolaeth newidynnau gan gymryd i ystyriaeth blociau a ffurfiwyd gan weithredwyr canghennog a dolenni.
- Castiau math diwerth (e.e. "(llinyn) 'foo'") a phrofion llym ("===" a "!==") ar ddata gyda gwahanol fathau a operands sydd bob amser yn dychwelyd ffug.
Arloesiadau allweddol yn PHPStan 1.0:
- Mae'r lefel wirio "9" wedi'i gweithredu, sy'n gwirio'r defnydd o'r math "cymysg", a fwriedir ar gyfer trefnu derbyniad paramedrau'r swyddogaeth gyda gwahanol fathau. Mae Lefel XNUMX yn nodi defnyddiau anniogel o "cymysg", megis pasio gwerthoedd o fath "cymysg" i fath arall, galw dulliau o fath "cymysg", a chael mynediad at ei briodweddau oherwydd efallai nad ydynt yn bodoli.
- Rheoli a yw gwerthoedd dychwelyd yn union yr un fath ar gyfer galwadau swyddogaeth union yr un fath gan ddefnyddio'r anodiadau @phpstan-pure a @phpstan-impure.
- Teipiwch ddadansoddiad mewn lluniadau ceisio dal-o'r diwedd gan ddefnyddio anodiadau @throws.
- Nodi priodweddau mewnol (preifat) diffiniedig ond heb eu defnyddio, dulliau a chysonion.
- Trosglwyddo galwadau anghydnaws i swyddogaethau arae fel array_map a usort.
- Math o archwiliad ar gyfer anodiadau math awgrym coll.
- Wedi gwneud datganiadau math sy'n gydnaws Γ’ PHPDocs, gan ganiatΓ‘u i fathau o negeseuon gwall gael eu defnyddio yn PHPDocs.
Ffynhonnell: opennet.ru