Untuk menggunakan ekstensi ini, memerlukannya di komposer:
composer require --dev phpstan/phpstan-deprecation-rules
Jika Anda juga menginstal phpstan/extension-installer maka Anda sudah siap!
Jika Anda tidak ingin menggunakan phpstan/extension-installer , sertakan aturan.neon dalam konfigurasi phpstan proyek Anda:
includes:
- vendor/phpstan/phpstan-deprecation-rules/rules.neon
Ekstensi ini memancarkan peringatan penyusutan pada kode, yang menggunakan properti/fungsi/metode/kelas yang dijelaskan sebagai @deprecated .
Jika Anda tidak memiliki kode yang ingin Anda anggap sudah usang, gunakan file rintisan phpstan untuk mendeklarasikan depresi untuk file vendor seperti:
/** @deprecated */
class ThirdPartyClass {}
Penggunaan kode yang sudah usang tidak dilaporkan dalam kode yang juga sudah usang:
/** @deprecated */
function doFoo (): void
{
// not reported:
anotherDeprecatedFunction ();
} Jika Anda memiliki cara menandai kode yang berbeda yang memanggil simbol yang sudah habis dengan sengaja dan Anda tidak ingin panggilan ini dilaporkan, Anda dapat menulis ekstensi dengan menerapkan antarmuka DeprecatedScopeResolver .
Misalnya jika Anda menandai tes phPunit Anda yang menguji kode yang sudah usang dengan @group legacy , Anda dapat mengimplementasikan ekstensi dengan cara ini:
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 ;
}
}Dan daftarkan di file konfigurasi Anda:
services :
-
class : GroupLegacyScopeResolver
tags :
- phpstan.deprecations.deprecatedScopeResolverPelajari lebih lanjut tentang SCOPE, konsep inti untuk mengimplementasikan ekstensi phpstan khusus.