ಆರು ವರ್ಷಗಳ ಅಭಿವೃದ್ಧಿಯ ನಂತರ, ಸ್ಥಾಯೀ ವಿಶ್ಲೇಷಕ PHPStan 1.0 ನ ಮೊದಲ ಸ್ಥಿರ ಬಿಡುಗಡೆಯು ನಡೆಯಿತು, ಇದು PHP ಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸದೆ ಮತ್ತು ಘಟಕ ಪರೀಕ್ಷೆಗಳನ್ನು ಬಳಸದೆ ದೋಷಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಯೋಜನೆಯ ಕೋಡ್ ಅನ್ನು PHP ನಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ ಮತ್ತು MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ವಿತರಿಸಲಾಗಿದೆ.
ವಿಶ್ಲೇಷಕವು 10 ಹಂತದ ತಪಾಸಣೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ, ಇದರಲ್ಲಿ ಪ್ರತಿ ನಂತರದ ಹಂತವು ಹಿಂದಿನ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ವಿಸ್ತರಿಸುತ್ತದೆ ಮತ್ತು ಹೆಚ್ಚು ಕಠಿಣ ಪರಿಶೀಲನೆಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ:
ಗುರುತಿಸಲಾದ ಆಧಾರವಾಗಿರುವ ಸಮಸ್ಯೆಗಳ ಉದಾಹರಣೆಗಳು:
- ಉದಾಹರಣೆಗೆ, ಕ್ಯಾಚ್, ಟೈಪ್ಹಿಂಟ್ಗಳು ಮತ್ತು ಇತರ ಭಾಷಾ ರಚನೆಗಳಲ್ಲಿ ಬಳಸಲಾಗುವ ವರ್ಗಗಳ ಅಸ್ತಿತ್ವ.
- ಎಂಬ ವಿಧಾನಗಳು ಮತ್ತು ಕಾರ್ಯಗಳ ಅಸ್ತಿತ್ವ ಮತ್ತು ಲಭ್ಯತೆ, ಹಾಗೆಯೇ ರವಾನಿಸಲಾದ ವಾದಗಳ ಸಂಖ್ಯೆ.
- ರಿಟರ್ನ್ ಎಕ್ಸ್ಪ್ರೆಶನ್ನಲ್ಲಿ ವಿವರಿಸಿದಂತೆ ಅದೇ ಪ್ರಕಾರದೊಂದಿಗೆ ವಿಧಾನವು ಡೇಟಾವನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ ಎಂದು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ.
- ಪ್ರವೇಶಿಸಿದ ಗುಣಲಕ್ಷಣಗಳ ಅಸ್ತಿತ್ವ ಮತ್ತು ಗೋಚರತೆ ಮತ್ತು ಗುಣಲಕ್ಷಣಗಳಲ್ಲಿ ಬಳಸಲಾದ ಘೋಷಿತ ಮತ್ತು ನಿಜವಾದ ಡೇಟಾ ಪ್ರಕಾರಗಳನ್ನು ಪರಿಶೀಲಿಸುವುದು.
- ಸ್ಟ್ರಿಂಗ್ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಬ್ಲಾಕ್ನಲ್ಲಿ sprintf/printf ಕರೆಗಳಿಗೆ ರವಾನಿಸಲಾದ ನಿಯತಾಂಕಗಳ ಸಂಖ್ಯೆ ಸರಿಯಾಗಿದೆ.
- ಕವಲೊಡೆಯುವ ಆಪರೇಟರ್ಗಳು ಮತ್ತು ಲೂಪ್ಗಳಿಂದ ರೂಪುಗೊಂಡ ಬ್ಲಾಕ್ಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಂಡು ವೇರಿಯಬಲ್ಗಳ ಅಸ್ತಿತ್ವ.
- ಅನುಪಯುಕ್ತ ಪ್ರಕಾರದ ಕ್ಯಾಸ್ಟ್ಗಳು (ಉದಾ. "(ಸ್ಟ್ರಿಂಗ್) 'ಫೂ'") ಮತ್ತು ಕಟ್ಟುನಿಟ್ಟಾದ ಪರೀಕ್ಷೆಗಳು ("===" ಮತ್ತು "!==") ವಿವಿಧ ಪ್ರಕಾರಗಳು ಮತ್ತು ಒಪೆರಾಂಡ್ಗಳೊಂದಿಗೆ ಯಾವಾಗಲೂ ತಪ್ಪಾಗಿ ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
PHPStan 1.0 ನಲ್ಲಿ ಪ್ರಮುಖ ಆವಿಷ್ಕಾರಗಳು:
- "9" ಚೆಕ್ ಮಟ್ಟವನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ, ಇದು "ಮಿಶ್ರ" ಪ್ರಕಾರದ ಬಳಕೆಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ, ವಿವಿಧ ಪ್ರಕಾರಗಳೊಂದಿಗೆ ನಿಯತಾಂಕಗಳ ಕಾರ್ಯದ ಸ್ವಾಗತವನ್ನು ಆಯೋಜಿಸಲು ಉದ್ದೇಶಿಸಲಾಗಿದೆ. ಹಂತ XNUMX "ಮಿಶ್ರ" ದ ಅಸುರಕ್ಷಿತ ಬಳಕೆಗಳನ್ನು ಗುರುತಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ "ಮಿಶ್ರ" ಪ್ರಕಾರದ ಮೌಲ್ಯಗಳನ್ನು ಮತ್ತೊಂದು ಪ್ರಕಾರಕ್ಕೆ ರವಾನಿಸುವುದು, ಪ್ರಕಾರದ ವಿಧಾನಗಳನ್ನು "ಮಿಶ್ರ" ಎಂದು ಕರೆಯುವುದು ಮತ್ತು ಅದರ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಪ್ರವೇಶಿಸುವುದು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿರಬಹುದು.
- @phpstan-pure ಮತ್ತು @phpstan-impure ಟಿಪ್ಪಣಿಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಒಂದೇ ರೀತಿಯ ಕಾರ್ಯ ಕರೆಗಳಿಗೆ ಹಿಂತಿರುಗಿಸುವ ಮೌಲ್ಯಗಳು ಒಂದೇ ಆಗಿವೆಯೇ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸಿ.
- @throws ಟಿಪ್ಪಣಿಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಟ್ರೈ-ಕ್ಯಾಚ್-ಫೈನಲಿ ಕನ್ಸ್ಟ್ರಕ್ಟ್ಗಳಲ್ಲಿ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಟೈಪ್ ಮಾಡಿ.
- ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಆದರೆ ಬಳಕೆಯಾಗದ ಆಂತರಿಕ (ಖಾಸಗಿ) ಗುಣಲಕ್ಷಣಗಳು, ವಿಧಾನಗಳು ಮತ್ತು ಸ್ಥಿರಾಂಕಗಳ ಗುರುತಿಸುವಿಕೆ.
- array_map ಮತ್ತು usort ನಂತಹ ಅರೇ ಕಾರ್ಯಗಳಿಗೆ ಹೊಂದಾಣಿಕೆಯಾಗದ ಕಾಲ್ಬ್ಯಾಕ್ಗಳನ್ನು ರವಾನಿಸುವುದು.
- ಕಾಣೆಯಾದ ಟೈಪ್ಹಿಂಟ್ ಟಿಪ್ಪಣಿಗಳಿಗಾಗಿ ಟೈಪ್ ತಪಾಸಣೆ.
- PHPDocs ನೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆಯ ರೀತಿಯ ಘೋಷಣೆಗಳನ್ನು ಮಾಡಲಾಗಿದೆ, PHPDocs ನಲ್ಲಿ ದೋಷ ಸಂದೇಶಗಳ ಪ್ರಕಾರಗಳನ್ನು ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ.
ಮೂಲ: opennet.ru