Deprecation ಎಚ್ಚರಿಕೆಗಳು ಸುಳ್ಳು ಎಚ್ಚರಿಕೆಗಳನ್ನು ನೀಡದಂತೆ ತಡೆಯುವುದು

PHPStan ಒಂದು ಮೆಥಡ್ ಅನ್ನು deprecated ಎಂದು ಗುರುತಿಸಿದಾಗ, ನೀವು ಸಾಮಾನ್ಯವಾಗಿ ಅದಕ್ಕೆ ಬದಲಿಯಾಗಿ ಯಾವುದಾದರೂ ಇದೆಯೇ ಎಂದು ಹುಡುಕುತ್ತೀರಿ. ಆದರೆ ಅಂತಹ ಯಾವುದೇ ಬದಲಾವಣೆ ಇಲ್ಲದಿದ್ದರೆ ಏನು ಮಾಡುವುದು?

Shopware ಯೋಜಿತ ಬದಲಾವಣೆಗಳನ್ನು ಘೋಷಿಸಲು (ಉದಾಹರಣೆಗೆ ಹೊಸ optional parameter ಅನ್ನು ಸೇರಿಸುವುದು) @deprecated ಟ್ಯಾಗ್ ಅನ್ನು ಬಳಸುತ್ತಿತ್ತು. ಸ್ಟ್ಯಾಟಿಕ್-ಅನಾಲಿಸಿಸ್ ಟೂಲ್‌ಗಳು ಆ ಟ್ಯಾಗ್‌ಗಳನ್ನು ನಿಜವಾದ deprecations ಎಂದು ಪರಿಗಣಿಸಿ, ಪ್ರತಿ ಬಾರಿ ಮೆಥಡ್ ಅನ್ನು ಬಳಸಿದಾಗಲೂ ಎಚ್ಚರಿಕೆ ನೀಡುತ್ತಿದ್ದವು. ಇದರಿಂದ ಎಚ್ಚರಿಕೆಗಳ ಸಂಖ್ಯೆ ಹೆಚ್ಚಾಗಿ, ಡೆವಲಪರ್‌ಗಳು ಅವುಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲು ಪ್ರಾರಂಭಿಸಿದರು ಮತ್ತು ಆ ಎಚ್ಚರಿಕೆಗಳು ತಮ್ಮ ಪ್ರಾಮುಖ್ಯತೆಯನ್ನು ಕಳೆದುಕೊಂಡವು. ಇದು ಸಾಕ್ಷಾತ್ "crying wolf" (ಸುಳ್ಳು ಎಚ್ಚರಿಕೆ ನೀಡುವ) ಪರಿಸ್ಥಿತಿಯಾಗಿದೆ.

Shopware 6.7.14.0 ರಲ್ಲಿ ನಾವು ಈ ಸಂಕೇತಗಳನ್ನು (signals) ವಿಂಗಡಿಸಿದ್ದೇವೆ.

  • @deprecated – ಇದನ್ನು ಅಳಿಸಿಹಾಕಲಾಗುವ ಅಥವಾ ಬದಲಾಯಿಸಲ್ಪಡುವ APIಗಳಿಗಾಗಿ ಮೀಸಲಿಡಿ. ನೀವು ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಮೈಗ್ರೇಟ್ ಮಾಡಲೇಬೇಕು.
  • BC-change attributes – API ಅನ್ನು ಜೀವಂತವಾಗಿರಿಸುವ ಯೋಜಿತ ಬದಲಾವಣೆಗಳಿಗಾಗಿ (ಉದಾಹರಣೆಗೆ ಹೊಸ optional parameters ಅಥವಾ ಬದಲಾದ return types) ಇವುಗಳನ್ನು ಬಳಸಿ.

ಹೊಸ ಅಟ್ರಿಬ್ಯೂಟ್‌ಗಳು Shopware\Core\Framework\Deprecation\BCChange ನಲ್ಲಿವೆ. ಇವುಗಳಲ್ಲಿ ಏನನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ ಮತ್ತು ಅದು ಯಾರ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ ಎಂಬ ನಿಖರ ಮಾಹಿತಿ ಇರುತ್ತದೆ.

ನಾವು ಅವುಗಳನ್ನು ಎರಡು ಗುಂಪುಗಳಾಗಿ ವಿಂಗಡಿಸಿದ್ದೇವೆ:

  • CallSiteCompatibilityChange – ಮೆಥಡ್ ಅನ್ನು ಕರೆಯುವ (call ಮಾಡುವ) ಕೋಡ್ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ.
  • ExtenderCompatibilityChange – ಮೆಥಡ್ ಅನ್ನು extend ಅಥವಾ override ಮಾಡುವ ಕ್ಲಾಸ್‌ಗಳ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ.

ಈಗ ನೀವು ಮುಂದಿನ ಪ್ರಮುಖ ಬಿಡುಗಡೆಯಾಗುವ ಮೊದಲೇ ನಿಮ್ಮ extension ಅನ್ನು Shopware 6.8 ಗಾಗಿ ಸಿದ್ಧಪಡಿಸಿಕೊಳ್ಳಬಹುದು.

ಉದಾಹರಣೆ: ಒಂದು ಮೆಥಡ್ ಹೊಸ optional parameter ಅನ್ನು ಪಡೆಯಲಿದೆ. ಆ ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಇಂದೇ ನಿಮ್ಮ overrides ಗೆ ಸೇರಿಸಿ; ಇದರಿಂದ ಕೋಡ್ ಪ್ರಸ್ತುತ ಮತ್ತು ಭವಿಷ್ಯದ ಎರಡೂ ವರ್ಷಾಂಕಗಳಲ್ಲಿ (versions) ಕೆಲಸ ಮಾಡುತ್ತದೆ.

ಈ ಬದಲಾವಣೆಯು deprecation ಎಚ್ಚರಿಕೆಗಳ ಮೇಲಿನ ನಂಬಿಕೆಯನ್ನು ಮರುಸ್ಥಾಪಿಸುತ್ತದೆ.

ಡೆವಲಪರ್‌ಗಳಿಗಾಗಿ ಮೂರು ಹಂತಗಳು

  1. @deprecated ಅನ್ನು ಕಡ್ಡಾಯವಾಗಿ ಸರಿಪಡಿಸಬೇಕಾದ ವಿಷಯವೆಂದು ಪರಿಗಣಿಸಿ; ಏಕೆಂದರೆ ಆ API ಅಳಿಸಿಹೋಗುತ್ತದೆ.
  2. ನಿಜವಾದ ಸಮಸ್ಯೆಗಳನ್ನು ಮರೆಮಾಚಬಹುದಾದ ವಿಶಾಲವಾದ ignore patterns ಗಳನ್ನು ಬಳಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ.
  3. BC-change attributes ಗಳ ಕಡೆ ಗಮನವಿರಲಿ ಮತ್ತು ನಂತರ ದೊಡ್ಡ ಮಟ್ಟದ ಮೈಗ್ರೇಶನ್ ಮಾಡುವ ಬದಲು, ಈಗಲೇ ಸಣ್ಣ ಮತ್ತು ಸುರಕ್ಷಿತ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಅನ್ವಯಿಸಿ.

ಮೂಲ: https://dev.to/shopware/when-deprecated-cries-wolf-making-shopwares-next-major-upgrades-easier-983