Kuzuia Tahadhari za Deprecation Zisizoeleweka kama Tahadhari za Uongo
PHPStan inapoweka alama kwenye njia (method) kama deprecated, kwa kawaida unatafuta mbadala. Lakini vipi ikiwa hakuna mbadala?
Shopware ilitumia tag ya @deprecated kutangaza mabadiliko yaliyopangwa—kama vile kuongeza parameter mpya ya hiari. Zana za uchambuzi wa kistatiki (static-analysis tools) zilichukulia tag hizo kama deprecations halisi na kulalamika kuhusu kila wito (call). Kelele zilipanda, watengenezaji walianza kupuuza tahadhari hizo, na arifa zikapoteza thamani yake. Hiyo ndiyo hali ya kawaida ya "kutoa tahadhari za uongo."
Katika Shopware 6.7.14.0, tumetenganisha ishara hizi.
@deprecated– hifadhi hii kwa API ambazo zitapotea au kubadilishwa. Lazima uhamishe (migrate) kodi yako.- BC-change attributes – tumia hizi kwa marekebisho yaliyopangwa ambayo yanawezesha API kuendelea kutumika, kama vile parameter mpya za hiari au aina za kurudisha (return types) zilizobadilishwa.
Attribute mpya hizi zipo kwenye Shopware\Core\Framework\Deprecation\BCChange. Zinakuambia kwa usahihi nini kitabadilika na nani kitaguswa.
Tumegawanya katika makundi mawili:
- CallSiteCompatibilityChange – huathiri kodi inayoiita method.
- ExtenderCompatibilityChange – huathiri madarasa (classes) yanayofanya extension au override ya method.
Sasa unaweza kuandaa extension yako kwa ajili ya Shopware 6.8 kabla ya toleo kubwa linalofuata kuingia sokoni.
Mfano: method itapata parameter mpya ya hiari. Ongeza parameter hiyo kwenye overrides zako leo; kodi itafanya kazi kwenye matoleo ya sasa na ya baadaye.
Mabadiliko haya yanarejesha imani katika tahadhari za deprecation.
Hatua tatu kwa watengenezaji
- Chukulia
@deprecatedkama marekebisho ya lazima; API hiyo itapotea. - Acha mifumo mipana ya kupuuza (ignore patterns) ambayo inaweza kuficha matatizo halisi.
- Fuatilia BC-change attributes na utekeleze maboresho madogo na salama sasa badala ya uhamisho mkubwa (massive migration) baadaye.
Chanzo: https://dev.to/shopware/when-deprecated-cries-wolf-making-shopwares-next-major-upgrades-easier-983
