مهم
أهلا بالجميع! هذا هو viktor الذي يدير هذا الامتداد phpstan. أخطط للتوقف عن المساهمة في نظام WordPress البيئي لأنه صعب للغاية ولا أحد يطلب مني الانضمام إلى فريقه لأنني مفكر ، شخص DevOps ، صانع أدوات (وليس منشئًا).
يرجى دعم عملي لتجنب التخلي عن هذه الحزمة.
شكرًا لك!
تحليل ثابت للنظام الإيكولوجي لورد.
php-stubs/wordpress-stubs .php-stubs/wordpress-stubsapply_filters() و do_action() ، معالجة نوع @param الأول على أنه نهائي. لاستخدام هذا الامتداد ، اطلبه في الملحن:
composer require --dev szepeviktor/phpstan-wordpressإذا قمت أيضًا بتثبيت Phpstan/Extension-instholer ، فأنت جميعًا قد تم تعيينه!
إذا كنت لا ترغب في استخدام phpstan/extension-installer ، قم بتضمين extension.neon في تكوين Phpstan لمشروعك:
includes :
- vendor/szepeviktor/phpstan-wordpress/extension.neon لا يلزم إعداد إضافي. ؟ ما عليك سوى تكوين phpstan - على سبيل المثال - كما هو موضح أدناه:
parameters :
level : 5
paths :
- plugin.php
- inc/لمزيد من التفاصيل ، تفضل بزيارة مرجع Phpstan Config.
استخدم Autoloader الملحن أو Autoloader مخصص!
قم بإجراء التحليل بـ:
vendor/bin/phpstan analyze ثم إصلاح خطأ و GOTO 10 !
يمكنك العثور على مزيد من المعلومات في دليل examples ، على سبيل المثال examples/phpstan.neon.dist
الرجوع إلى Stubs 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 ); يقرأ هذا الملحق هذه docblocks ويترشد phpstan لعلاج نوع إرجاع المرشح كما هو مؤكد ، استنادًا إلى علامة @param الأولى. في هذا المثال ، يفسر Phpstan $title string .
للحصول على أفضل النتائج ، تأكد من أن علامة @param الأولى في هذه docblocks دقيقة.
class Name { ... } .inc/ دليل مخصص.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