ในการใช้ส่วนขยายนี้ต้องใช้ในนักแต่งเพลง:
composer require --dev phpstan/phpstan-deprecation-rules
หากคุณติดตั้ง PHPSTAN/EXTENSION-INSTALLER คุณก็พร้อมแล้ว!
หากคุณไม่ต้องการใช้ phpstan/extension-installer ให้รวมกฎ neon ในการกำหนดค่า phpstan ของโครงการของคุณ:
includes:
- vendor/phpstan/phpstan-deprecation-rules/rules.neon
ส่วนขยายนี้ปล่อยคำเตือนการคิดค่าเสื่อมราคาบนรหัสซึ่งใช้คุณสมบัติ/ฟังก์ชั่น/วิธีการ/คลาสซึ่งมีคำอธิบายประกอบเป็น @deprecated
ในกรณีที่คุณไม่ได้เป็นเจ้าของรหัสที่คุณต้องการพิจารณาเลิกใช้ให้ใช้ไฟล์ phpstan stub เพื่อประกาศการเสียเงินสำหรับไฟล์ผู้ขายเช่น:
/** @deprecated */
class ThirdPartyClass {}
การใช้รหัสที่เลิกใช้แล้วไม่ได้ถูกรายงานในรหัสที่เลิกใช้แล้วด้วย:
/** @deprecated */
function doFoo (): void
{
// not reported:
anotherDeprecatedFunction ();
} หากคุณมีวิธีการทำเครื่องหมายรหัสที่แตกต่างกันซึ่งเรียกว่าสัญลักษณ์ที่เลิกใช้แล้วโดยมีวัตถุประสงค์และคุณไม่ต้องการให้มีการรายงานการโทรเหล่านี้คุณสามารถเขียนส่วนขยายได้โดยใช้อินเตอร์เฟส DeprecatedScopeResolver
ตัวอย่างเช่นหากคุณทำเครื่องหมายการทดสอบ phpunit ของคุณว่าการทดสอบรหัสที่เลิกใช้แล้วด้วย @group legacy คุณสามารถใช้ส่วนขยายด้วยวิธีนี้:
class GroupLegacyScopeResolver implements DeprecatedScopeResolver
{
public function isScopeDeprecated ( Scope $ scope ): bool
{
$ function = $ scope -> getFunction ();
return $ function !== null
&& $ function -> getDocComment () !== null
&& strpos ( $ function -> getDocComment (), ' @group legacy ' ) !== false ;
}
}และลงทะเบียนในไฟล์กำหนดค่าของคุณ:
services :
-
class : GroupLegacyScopeResolver
tags :
- phpstan.deprecations.deprecatedScopeResolverเรียนรู้เพิ่มเติมเกี่ยวกับขอบเขตแนวคิดหลักสำหรับการใช้ส่วนขยาย phpstan ที่กำหนดเอง