Penting
Halo semuanya! Ini adalah Viktor yang menjalankan ekstensi phpstan ini. Saya berencana untuk berhenti berkontribusi pada ekosistem WordPress karena sangat sulit dan tidak ada yang meminta saya untuk bergabung dengan timnya karena saya seorang pemikir, orang DevOps, pembuat alat (bukan pembangun).
Tolong dukung pekerjaan saya untuk menghindari meninggalkan paket ini.
Terima kasih!
Analisis statis untuk ekosistem WordPress.
php-stubs/wordpress-stubs .php-stubs/wordpress-stubsapply_filters() dan do_action() , memperlakukan jenis @param pertama sebagai definitif. Untuk menggunakan ekstensi ini, memerlukannya di komposer:
composer require --dev szepeviktor/phpstan-wordpressJika Anda juga menginstal phpstan/extension-installer maka Anda sudah siap!
Jika Anda tidak ingin menggunakan phpstan/extension-installer , sertakan extension.neon dalam konfigurasi phpstan proyek Anda:
includes :
- vendor/szepeviktor/phpstan-wordpress/extension.neon Tidak diperlukan pengaturan tambahan. ? Cukup konfigurasikan phpstan - misalnya - seperti yang ditunjukkan di bawah ini:
parameters :
level : 5
paths :
- plugin.php
- inc/Untuk detail lebih lanjut, kunjungi referensi konfigurasi phpstan.
Gunakan Autoloader Composer atau Autoloader Kustom!
Jalankan analisis dengan:
vendor/bin/phpstan analyze Kemudian perbaiki kesalahan dan GOTO 10 !
Anda menemukan informasi lebih lanjut di direktori examples , misalnya examples/phpstan.neon.dist
Rujuk ke Stubs WooCommerce untuk panduan khusus.
apply_filters() Ekosistem WordPress sering menggunakan phpDoc docblocks dengan cara non-standar untuk mendokumentasikan parameter yang diteruskan ke apply_filters() . Inilah contohnya:
/**
* Filters the page title when creating an HTML drop-down list of pages.
*
* @param string $title Page title.
* @param WP_Post $page Page data object.
*/
$ title = apply_filters ( ' list_pages ' , $ title , $ page ); Ekstensi ini membaca docblocks ini dan menginstruksikan Phpstan untuk memperlakukan jenis pengembalian filter sebagai tertentu, berdasarkan tag @param pertama. Dalam contoh ini, Phpstan menafsirkan $title sebagai string .
Untuk hasil terbaik, pastikan tag @param pertama di docblocks ini akurat.
class Name { ... } .inc/ khusus.apply_filters() .eval , extract , compact , list$a = '15'; if ($a) ...if membutuhkan boolean), lihat fungsi penanganan variabelexit_error di WP_CLI::launch atau WP_CLI::runcommand untuk peningkatan testabilitas. WordPress menggunakan fungsi bersyarat dan definisi kelas untuk memungkinkan overrides. Gunakan perintah sed untuk mengecualikan stubs fungsi ketika mereka sebelumnya didefinisikan.
sed -i -e ' s#function is_gd_image#function __is_gd_image# ' vendor/php-stubs/wordpress-stubs/wordpress-stubs.php