PHPSTAN aturan untuk mendeteksi panggilan tidak diizinkan dan banyak lagi, tanpa menjalankan kode.
Ada beberapa fungsi, metode, dan konstanta yang tidak boleh digunakan dalam kode produksi. Salah satu contoh yang baik adalah var_dump() , ini sering digunakan untuk dengan cepat men -debug masalah tetapi harus dihapus sebelum melakukan kode. Dan terkadang tidak.
Contoh lain adalah pencatat generik. Katakanlah Anda menggunakan salah satu pustaka logging generik tetapi Anda memiliki logger sendiri yang akan menambahkan beberapa info lebih lanjut, atau membersihkan data, sebelum memanggil logger generik. Kode Anda tidak boleh menghubungi logger generik secara langsung tetapi sebaliknya harus menggunakan logger khusus Anda.
Ekstensi phpstan ini akan mendeteksi penggunaan seperti itu, jika dikonfigurasi. Perlu dicatat bahwa ekstensi ini bukan cara untuk mempertahankan atau mendeteksi pengembang yang bermusuhan, karena mereka dapat mengaburkan panggilan misalnya. Ekstensi ini dimaksudkan untuk menjadi sepasang mata lain, mendeteksi kesalahan Anda sendiri, itu tidak bertujuan untuk mendeteksi semua hal.
Tes akan memberikan contoh apa yang saat ini terdeteksi. Jika tidak dicakup oleh tes, mungkin, tetapi kemungkinan besar tidak akan terdeteksi. *Test.php File adalah tes, mulailah dengan yang dianalisis kode uji ada di SRC, kelas tes yang diperlukan di LIBS.
Jangan ragu untuk mengajukan masalah atau membuat permintaan tarik jika Anda perlu mendeteksi lebih banyak panggilan.
Instasi ekstensi menggunakan komposer:
composer require --dev spaze/phpstan-disallowed-calls
PHPSTAN, alat analisis statis PHP, merupakan persyaratan.
Jika Anda menggunakan phpstan/extension-installer, Anda semua diatur dan dapat melompat ke konfigurasi.
Untuk instalasi manual, tambahkan ini ke phpstan.neon Anda.
includes :
- vendor/spaze/phpstan-disallowed-calls/extension.neon Anda dapat mulai dengan file konfigurasi yang dibundel.
Ekstensi juga mendukung aturan kustom yang serbaguna.
Katakanlah Anda telah melarang foo() dengan aturan khusus. Tetapi Anda ingin memastikannya kembali saat digunakan dalam pembungkus khusus Anda, atau ketika parameter pertama sama dengan, atau tidak, nilai yang ditentukan. Ekstensi menawarkan berbagai cara untuk melakukan itu:
Atribut yang memungkinkan kembali menggunakan konfigurasi yang sama.
Gunakan generator yang disediakan untuk menghasilkan cuplikan konfigurasi dari PHP's disable_functions & disable_classes Konfigurasi Arahan.
------ --------------------------------------------------------
Line libraries/Report/Processor/CertificateTransparency.php
------ --------------------------------------------------------
116 Calling var_dump() is forbidden, use logger instead
------ --------------------------------------------------------
Nama fungsi, nama metode, nama kelas, ruang nama dicocokkan terlepas dari kasingnya (tidak memungkinkan print_r juga akan menemukan panggilan print_R ), sementara hal lain seperti konstanta, nama file, jalur tidak.
Anda juga dapat menggunakan ekstensi ini tanpa aturan phpstan lainnya. Ini mungkin berguna jika Anda ingin misalnya memeriksa kode pihak ketiga untuk beberapa panggilan atau penggunaan sesuatu.
Jika Anda ingin berkontribusi (luar biasa, terima kasih!), Anda harus menambahkan/menjalankan tes untuk kontribusi Anda. Pertama -tama instalasi dependensi dev dengan menjalankan composer install , lalu jalankan tes phpunit dengan composer test , lihat scripts di composer.json . Tes juga dijalankan pada github dengan tindakan pada setiap dorongan.
Anda dapat memperbaiki masalah gaya pengkodean secara otomatis dengan menjalankan composer cs-fix .
Ada proyek serupa dengan konfigurasi yang sedikit berbeda, dibuat hampir pada saat yang sama (hanya beberapa hari perbedaan): phpstan kode terlarang.