Menghentikan Peringatan Depresiasi agar Tidak Menjadi Alarm Palsu
Ketika PHPStan menandai sebuah metode sebagai deprecated, Anda biasanya akan mencari penggantinya. Namun, bagaimana jika tidak ada penggantinya?
Shopware menggunakan tag @deprecated untuk mengumumkan perubahan yang direncanakan—seperti menambahkan parameter opsional baru. Alat analisis statis memperlakukan tag tersebut sebagai depresiasi nyata dan memberikan peringatan pada setiap pemanggilan. Kebisingan pun meningkat, pengembang mulai mengabaikan peringatan tersebut, dan peringatan tersebut kehilangan nilainya. Itulah fenomena klasik "alarm palsu".
Dalam Shopware 6.7.14.0, kami memisahkan sinyal-sinyal tersebut.
@deprecated– gunakan ini khusus untuk API yang akan hilang atau diganti. Anda wajib memigrasikan kode Anda.- Atribut BC-change – gunakan ini untuk penyesuaian terencana yang menjaga API tetap aktif, seperti parameter opsional baru atau tipe pengembalian yang diubah.
Atribut baru ini berada di Shopware\Core\Framework\Deprecation\BCChange. Atribut tersebut memberi tahu Anda secara tepat apa yang akan berubah dan siapa yang terdampak.
Kami membaginya menjadi dua kelompok:
- CallSiteCompatibilityChange – memengaruhi kode yang memanggil sebuah metode.
- ExtenderCompatibilityChange – memengaruhi kelas yang memperluas (extend) atau menimpa (override) sebuah metode.
Sekarang Anda dapat mempersiapkan ekstensi Anda untuk Shopware 6.8 sebelum rilis utama berikutnya tiba.
Contoh: sebuah metode akan mendapatkan parameter opsional baru. Tambahkan parameter tersebut ke dalam override Anda hari ini; kode tersebut akan berjalan baik pada versi saat ini maupun versi mendatang.
Perubahan ini mengembalikan kepercayaan terhadap peringatan depresiasi.
Tiga langkah untuk pengembang
- Anggap
@deprecatedsebagai perbaikan wajib; API tersebut akan hilang. - Hentikan penggunaan pola pengabaian (ignore patterns) yang luas yang dapat menyembunyikan masalah nyata.
- Pantau atribut BC-change dan terapkan pembaruan kecil yang aman sekarang, daripada melakukan migrasi besar-besaran di kemudian hari.
Sumber: https://dev.to/shopware/when-deprecated-cries-wolf-making-shopwares-next-major-upgrades-easier-983
