Sawise nem taun pembangunan, release stabil pisanan saka analisa statis PHPStan 1.0 njupuk Panggonan, sing ngijini sampeyan kanggo nemokake kasalahan ing kode PHP tanpa nglakokaké lan nggunakake tes unit. Kode proyek ditulis ing PHP lan disebarake miturut lisensi MIT.
Analyzer nyedhiyakake 10 tingkat pamriksa, ing saben level sabanjure ngembangake kemampuan sadurunge lan menehi pamriksa sing luwih ketat:
Conto masalah dhasar sing diidentifikasi:
- Anane kelas sing digunakake ing instanceof, catch, typehints lan konstruksi basa liyane.
- Anane lan kasedhiyan metode lan fungsi sing diarani, uga jumlah argumen sing dilewati.
- Priksa manawa metode kasebut ngasilake data kanthi jinis sing padha kaya sing ditegesake ing ekspresi bali.
- Orane lan visibilitas properti sing diakses, lan mriksa jinis data sing diumumake lan nyata sing digunakake ing properti kasebut.
- Jumlah paramèter sing diterusake menyang telpon sprintf/printf ing blok format string bener.
- Anane variabel njupuk blok akun sing dibentuk dening operator cabang lan puteran.
- Jinis ora ana gunane cast (contone. "(string) 'foo'") lan tes ketat ("===" lan "!==") ing data karo macem-macem jinis lan operand sing tansah bali palsu.
Inovasi utama ing PHPStan 1.0:
- Tingkat mriksa "9" wis dileksanakake, sing mriksa panggunaan jinis "campuran", sing dimaksudake kanggo ngatur panrima fungsi paramèter kanthi macem-macem jinis. Level XNUMX ngenali panggunaan "campuran" sing ora aman, kayata ngirim nilai saka jinis "campuran" menyang jinis liyane, nelpon metode jinis "campuran", lan ngakses properti kasebut amarga bisa uga ora ana.
- Kontrol apa nilai bali identik kanggo telpon fungsi sing padha nggunakake anotasi @phpstan-pure lan @phpstan-impure.
- Ketik analisis ing try-catch-finally constructs nggunakake @throws anotasi.
- Identifikasi sifat, metode lan konstanta internal (pribadi) sing ditetepake nanging ora digunakake.
- Nglewati callback sing ora kompatibel menyang fungsi array kayata array_map lan usort.
- Inspeksi jinis kanggo anotasi tip sing ilang.
- Pranyatan jinis digawe kompatibel karo PHPDocs, ngidini jinis pesen kesalahan digunakake ing PHPDocs.
Source: opennet.ru