Deprecation Warnings मुळे होणारा गोंधळ थांबवणे
जेव्हा PHPStan एखादी मेथड 'deprecated' म्हणून चिन्हांकित करते, तेव्हा तुम्ही सामान्यतः तिच्या जागी वापरता येण्यासारखी दुसरी मेथड शोधता. पण जर अशी कोणतीही पर्याय उपलब्ध नसेल तर?
Shopware नियोजित बदल जाहीर करण्यासाठी @deprecated टॅगचा वापर करायचे—जसे की नवीन पर्यायी पॅरामीटर (optional parameter) जोडणे. Static-analysis टूल्सनी या टॅग्सना खऱ्या 'deprecations' प्रमाणे मानले आणि प्रत्येक कॉलवर तक्रार करू लागली. यामुळे गोंधळ वाढला, डेव्हलपर्सनी चेतावणींकडे दुर्लक्ष करण्यास सुरुवात केली आणि या अलर्ट्सचे महत्त्व कमी झाले. हीच ती पारंपारिक 'crying wolf' (खोटे इशारे देणे) ची स्थिती आहे.
Shopware 6.7.14.0 मध्ये आम्ही हे संकेत (signals) विभागले आहेत.
@deprecated– हे अशा APIs साठी राखून ठेवा जे गायब होतील किंवा बदलले जातील. तुम्हाला तुमचा कोड मायग्रेट (migrate) करणे अनिवार्य आहे.- BC-change attributes – नियोजित बदलांसाठी (tweaks) यांचा वापर करा ज्यामुळे API कार्यरत राहील, जसे की नवीन पर्यायी पॅरामीटर्स किंवा बदललेले रिटर्न टाइप्स (return types).
नवीन attributes Shopware\Core\Framework\Deprecation\BCChange मध्ये उपलब्ध आहेत. त्यातून नेमके काय बदलणार आहे आणि त्याचा कोणावर परिणाम होईल, हे तुम्हाला समजते.
आम्ही त्यांचे दोन गटांत विभाजन केले आहे:
- CallSiteCompatibilityChange – ज्या कोडमधून मेथड कॉल केली जाते, त्यावर याचा परिणाम होतो.
- ExtenderCompatibilityChange – ज्या क्लासेस मेथडला extend किंवा override करतात, त्यावर याचा परिणाम होतो.
आता तुम्ही पुढील मेजर रिलीज येण्यापूर्वीच तुमच्या extension ला Shopware 6.8 साठी तयार करू शकता.
उदाहरण: एखाद्या मेथडमध्ये नवीन पर्यायी पॅरामीटर जोडले जाणार आहे. तो पॅरामीटर आजच तुमच्या overrides मध्ये जोडा; यामुळे तुमचा कोड सध्याच्या आणि भविष्यातील दोन्ही व्हर्जनवर व्यवस्थित चालेल.
या बदलामुळे deprecation warnings वर पुन्हा विश्वास निर्माण होईल.
डेव्हलपर्ससाठी तीन पावले
@deprecatedला अनिवार्य सुधारणा (mandatory fix) म्हणून पहा; कारण तो API निघून जाईल.- मोठ्या प्रमाणावर वापरले जाणारे 'ignore patterns' टाळा, कारण ते खऱ्या समस्या लपवू शकतात.
- BC-change attributes कडे लक्ष द्या आणि नंतर मोठ्या प्रमाणावर मायग्रेशन करण्याऐवजी आताच लहान आणि सुरक्षित अपडेट्स लागू करा.
स्रोत: https://dev.to/shopware/when-deprecated-cries-wolf-making-shopwares-next-major-upgrades-easier-983
