Larastan dibuat oleh Can Vural dan Nuno Maduro, mendapat karya seni yang dirancang oleh @Caneco, dikelola oleh Can Vural dan Viktor Szépe, dan merupakan ekstensi PHPStan untuk Laravel. Larastan berfokus pada menemukan kesalahan dalam kode Anda . Ia menangkap seluruh kelas bug bahkan sebelum Anda menulis tes untuk kodenya.
Meskipun menurut definisi, "analisis statis" tidak memuat kode aplikasi Anda. Larastan melakukan booting pada container aplikasi Anda, sehingga dapat menyelesaikan tipe yang hanya mungkin untuk dihitung saat runtime. Itu sebabnya kami menggunakan istilah "analisis kode" dan bukan "analisis statis".
Versi Laravel | Versi Larastan |
---|---|
< 9 | 1.x |
> 9,0 && <11,15 | 2.x |
11.15+ | 3.0+ |
Memerlukan:
1 : Pertama, Anda dapat menggunakan Composer untuk menginstal Larastan sebagai dependensi pengembangan ke dalam proyek Laravel Anda:
composer require --dev " larastan/larastan:^3.0 "
Menggunakan Larastan untuk menganalisis paket Laravel? Anda mungkin perlu menginstal
orchestra/testbench
.
2 : Kemudian, buat file phpstan.neon
atau phpstan.neon.dist
di root aplikasi Anda. Ini mungkin terlihat seperti ini:
includes:
- vendor/larastan/larastan/extension.neon
- vendor/nesbot/carbon/extension.neon
parameters:
paths:
- app/
# Level 10 is the highest level
level: 5
# ignoreErrors:
# - '#PHPDoc tag @var#'
#
# excludePaths:
# - ./*/*/FileToBeExcluded.php
Untuk semua opsi yang tersedia, silakan lihat dokumentasi PHPStan: https://phpstan.org/config-reference
3 : Terakhir, Anda dapat mulai menganalisis kode Anda menggunakan perintah konsol phpstan:
./vendor/bin/phpstan analyse
Jika Anda mendapatkan kesalahan Allowed memory size exhausted
, maka Anda dapat menggunakan opsi --memory-limit
untuk memperbaiki masalah:
./vendor/bin/phpstan analyse --memory-limit=2G
Mengabaikan kesalahan tertentu dapat dilakukan dengan komentar php atau di file konfigurasi:
// @phpstan-ignore-next-line
$ test -> badMethod ();
$ test -> badMethod (); // @phpstan-ignore-line
Saat mengabaikan kesalahan dalam file konfigurasi PHPStan, kesalahan tersebut diabaikan dengan menulis regex berdasarkan pesan kesalahan:
parameters :
ignoreErrors :
- ' #Call to an undefined method .*badMethod()# '
Dalam basis kode yang lebih lama, mungkin sulit menghabiskan waktu untuk memperbaiki semua kode agar lulus Level PHPStan yang tinggi.
Untuk menyiasatinya, file dasar dapat dibuat. File baseline akan membuat file konfigurasi dengan semua kesalahan saat ini, sehingga kode baru dapat ditulis mengikuti standar yang lebih tinggi daripada kode lama. (Dokumen PHPstan)
./vendor/bin/phpstan analyse --generate-baseline
Daftar aturan yang dapat dikonfigurasi khusus untuk Laravel dapat ditemukan di sini.
Daftar fitur Larastan dapat ditemukan di sini.
Daftar tipe PHPDoc khusus untuk Larastan dapat ditemukan di sini.
Daftar parameter konfigurasi khusus yang dapat Anda gunakan dalam file konfigurasi PHPStan dapat ditemukan di sini.
Beberapa bagian Laravel saat ini terlalu ajaib untuk dipahami oleh Larastan/PHPStan. Kami mencantumkan kesalahan umum yang harus diabaikan, tambahkan sesuai kebutuhan
Terima kasih telah mempertimbangkan untuk berkontribusi pada Larastan. Semua pedoman kontribusi disebutkan di sini.
Larastan adalah perangkat lunak sumber terbuka yang dilisensikan di bawah lisensi MIT.