สำคัญ
สวัสดีทุกคน! นี่คือ Viktor ที่ทำงานส่วนขยาย phpstan นี้ ฉันวางแผนที่จะหยุดการมีส่วนร่วมในระบบนิเวศของ WordPress เพราะมันยากมากและไม่มีใครขอให้ฉัน เข้าร่วมทีมของเขา เพราะฉันเป็นนักคิดคน Devops ผู้ผลิตเครื่องมือ (ไม่ใช่ผู้สร้าง)
โปรดสนับสนุนงานของฉันเพื่อหลีกเลี่ยงการละทิ้งแพ็คเกจนี้
ขอบคุณ!
การวิเคราะห์แบบคงที่สำหรับระบบนิเวศของ WordPress
php-stubs/wordpress-stubsphp-stubs/wordpress-stubsapply_filters() และ do_action() การโทรรักษาประเภทของ @param แรกอย่างชัดเจน ในการใช้ส่วนขยายนี้ต้องใช้ในนักแต่งเพลง:
composer require --dev szepeviktor/phpstan-wordpressหากคุณติดตั้ง PHPSTAN/EXTENSION-INSTALLER คุณก็พร้อมแล้ว!
หากคุณไม่ต้องการใช้ phpstan/extension-installer ให้รวมส่วน extension.neon ในการกำหนดค่า phpstan ของโครงการของคุณ:
includes :
- vendor/szepeviktor/phpstan-wordpress/extension.neon ไม่จำเป็นต้องมีการตั้งค่าเพิ่มเติม - เพียงกำหนดค่า phpstan - ตัวอย่าง - ดังที่แสดงด้านล่าง:
parameters :
level : 5
paths :
- plugin.php
- inc/สำหรับรายละเอียดเพิ่มเติมโปรดเยี่ยมชมการอ้างอิงการกำหนดค่า phpstan
ใช้นักแต่งเพลง AutoLoader หรือ AutoLoader ที่กำหนดเอง!
เรียกใช้การวิเคราะห์ด้วย:
vendor/bin/phpstan analyze จากนั้นแก้ไขข้อผิดพลาดและ GOTO 10 !
คุณพบข้อมูลเพิ่มเติมในไดเรกทอรี examples เช่น examples/phpstan.neon.dist
อ้างถึงต้นขั้ว WooCommerce สำหรับคำแนะนำเฉพาะ
apply_filters() ระบบนิเวศของ WordPress มักจะใช้ docblocks phpDoc ในวิธีที่ไม่ได้มาตรฐานในการจัดทำเอกสารพารามิเตอร์ที่ส่งผ่านไปยัง apply_filters() นี่คือตัวอย่าง:
/**
* 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 ); ส่วนขยายนี้อ่าน docblock เหล่านี้และสั่งให้ PHPStan ปฏิบัติต่อประเภทการส่งคืนของตัวกรองอย่างแน่นอนตามแท็ก @param แรก ในตัวอย่างนี้ phpstan ตีความ $title เป็น string
เพื่อผลลัพธ์ที่ดีที่สุดตรวจสอบให้แน่ใจว่าแท็ก @param แรกใน docblock เหล่านี้มีความถูกต้อง
class Name { ... }inc/ DIRECTORY โดยเฉพาะapply_filters()eval , extract , compact , list$a = '15'; if ($a) ...if ต้องการบูลีน) ให้ดูฟังก์ชั่นการจัดการตัวแปรexit_error ใน WP_CLI::launch หรือ WP_CLI::runcommand เพื่อการทดสอบที่ดีขึ้น WordPress ใช้ฟังก์ชั่นเงื่อนไขและคำจำกัดความของคลาสเพื่ออนุญาตให้แทนที่ ใช้คำสั่ง sed เพื่อแยกสตับฟังก์ชั่นเมื่อกำหนดไว้ก่อนหน้านี้
sed -i -e ' s#function is_gd_image#function __is_gd_image# ' vendor/php-stubs/wordpress-stubs/wordpress-stubs.php