Foto oleh Ron McClenny di Unsplash
Selalunya apabila orang berfikir tentang PHPStan, mereka biasanya berfikir untuk meningkatkan Liputan Jenis. Itu sebenarnya hanya sebahagian kecil daripada kemampuan PHPStan. Dalam artikel ini, kita akan mempelajari cara menggunakannya untuk menghentikan regresi peningkatan.
Regresi naik taraf ialah apabila anda mempunyai fungsi dalam aplikasi anda yang ingin anda alihkan. Ini mungkin kod dalam aplikasi anda atau kod dalam kebergantungan yang telah anda pasang.
Selalunya apabila cuba melakukan peningkatan, kami tidak dapat melakukan semuanya dalam satu masa. Sebaliknya kita perlu membuat perubahan tambahan yang kecil. Sama seperti kami melakukan ini, kami tidak mahu pembangun lain terus menggunakan kaedah dan sifat yang tidak digunakan lagi. Dalam situasi ini, panggilan kaedah baharu dan lain-lain adalah regresi dalam kemajuan anda untuk menaik taraf aplikasi anda.
Untuk mula menangani regresi peningkatan, langkah pertama ialah memasang PHPStan jika anda belum melakukannya. Anda boleh memasangnya melalui Komposer:
composer require --dev phpstan/phpstan
Seterusnya, anda perlu menambah sambungan Peraturan Penamatan, yang secara khusus membantu menjejaki penggunaan kaedah, sifat dan kelas yang ditamatkan dalam pangkalan kod anda:
composer require --dev phpstan/phpstan-deprecation-rules
Setelah dipasang, anda boleh mengkonfigurasi PHPStan untuk menggunakan peraturan penamatan dengan menambahkannya pada phpstan.neon fail konfigurasi anda:
includes: - vendor/phpstan/phpstan-deprecation-rules/rules.neon
Menjalankan PHPStan dengan persediaan ini kini akan membenderakan mana-mana kaedah, sifat atau kelas yang tidak digunakan dalam pangkalan kod anda. Ini merupakan langkah penting dalam mencegah regresi peningkatan kerana anda akan dimaklumkan apabila kod yang ditamatkan digunakan. Anda kemudiannya boleh memfaktorkan semula kejadian tersebut untuk memastikan aplikasi anda bergerak ke arah fungsi yang lebih baharu dan disokong.
Walaupun sambungan Peraturan Penamatan menangkap kod yang telah ditamatkan, sambungan Panggilan Tidak Dibenarkan menawarkan cara untuk menyekat panggilan fungsi tertentu, panggilan kaedah atau malah keseluruhan kelas yang anda tidak mahu benarkan lagi dalam pangkalan kod anda. Ini amat berguna untuk kawalan yang lebih terperinci ke atas kod anda seperti kod yang tidak mempunyai amaran penamatan.
composer require --dev spaze/phpstan-disallowed-calls
Selepas pemasangan, anda perlu mengkonfigurasinya dalam fail phpstan.neon anda. Berikut ialah contoh cara anda tidak membenarkan panggilan atau fungsi kaedah tertentu:
includes: - vendor/phpstan/phpstan-deprecation-rules/rules.neon # add the extension - vendor/spaze/phpstan-disallowed-calls/extension.neon parameters: # You can see more example at https://github.com/spaze/phpstan-disallowed-calls/blob/main/docs/custom-rules.md disallowedMethodCalls: - method: 'PotentiallyDangerous\Logger::log()' # `function` is an alias of `method` message: 'use our own logger instead' errorTip: 'see https://our-docs.example/logging on how logging should be used'Begin writing your own rules disallowedFunctionCalls: - function: 'var_dump()' # `method` is an alias of `function` message: 'use logger instead'
Pelanjutan ini cukup komprehensif bermakna anda akan dapat menampung kebanyakan senario. Sudah tentu mungkin terdapat beberapa situasi yang tidak berkesan dan untuk itu perkara terbaik ialah mula belajar menulis peraturan anda sendiri.
Ini adalah sesuatu yang akan kita bahas dalam artikel lain.
Menggunakan PHPStan untuk menangkap regresi naik taraf ialah cara pintar untuk menjadikan proses naik taraf lebih mudah, terutamanya dalam pasukan pembangunan yang besar. Menggunakan PHPStan pada persediaan penyepaduan berterusan anda
Atas ialah kandungan terperinci Peningkatan PHP: Sekat regresi dengan PHPStan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!