ആറ് വർഷത്തെ വികസനത്തിന് ശേഷം, സ്റ്റാറ്റിക് അനലൈസർ PHPStan 1.0 ന്റെ ആദ്യത്തെ സ്ഥിരതയുള്ള റിലീസ് നടന്നു, ഇത് PHP കോഡ് എക്സിക്യൂട്ട് ചെയ്യാതെയും യൂണിറ്റ് ടെസ്റ്റുകൾ ഉപയോഗിക്കാതെയും പിശകുകൾ കണ്ടെത്താൻ നിങ്ങളെ അനുവദിക്കുന്നു. പ്രോജക്റ്റ് കോഡ് PHP-യിൽ എഴുതുകയും MIT ലൈസൻസിന് കീഴിൽ വിതരണം ചെയ്യുകയും ചെയ്യുന്നു.
അനലൈസർ 10 ലെവലുകൾ പരിശോധിക്കുന്നു, അതിൽ ഓരോ തുടർന്നുള്ള ലെവലും മുമ്പത്തേതിന്റെ കഴിവുകൾ വികസിപ്പിക്കുകയും കൂടുതൽ കർശനമായ പരിശോധനകൾ നൽകുകയും ചെയ്യുന്നു:
തിരിച്ചറിഞ്ഞ അടിസ്ഥാന പ്രശ്നങ്ങളുടെ ഉദാഹരണങ്ങൾ:
- ഉദാഹരണങ്ങൾ, ക്യാച്ച്, ടൈപ്പ്ഹിന്റുകൾ, മറ്റ് ഭാഷാ നിർമ്മാണങ്ങൾ എന്നിവയിൽ ഉപയോഗിക്കുന്ന ക്ലാസുകളുടെ അസ്തിത്വം.
- വിളിക്കപ്പെടുന്ന രീതികളുടെയും പ്രവർത്തനങ്ങളുടെയും നിലനിൽപ്പും ലഭ്യതയും, അതുപോലെ പാസാക്കിയ ആർഗ്യുമെന്റുകളുടെ എണ്ണവും.
- റിട്ടേൺ എക്സ്പ്രഷനിൽ നിർവചിച്ചിരിക്കുന്ന അതേ തരത്തിൽ രീതി ഡാറ്റ നൽകുന്നു എന്ന് പരിശോധിക്കുന്നു.
- ആക്സസ് ചെയ്യപ്പെടുന്ന പ്രോപ്പർട്ടികളുടെ നിലനിൽപ്പും ദൃശ്യപരതയും, പ്രോപ്പർട്ടികളിൽ ഉപയോഗിക്കുന്ന പ്രഖ്യാപിതവും യഥാർത്ഥവുമായ ഡാറ്റ തരങ്ങൾ പരിശോധിക്കുന്നു.
- സ്ട്രിംഗ് ഫോർമാറ്റിംഗ് ബ്ലോക്കിലെ സ്പ്രിന്റ്എഫ്/പ്രിന്റ്എഫ് കോളുകളിലേക്ക് നൽകിയ പാരാമീറ്ററുകളുടെ എണ്ണം ശരിയാണ്.
- ബ്രാഞ്ചിംഗ് ഓപ്പറേറ്റർമാരും ലൂപ്പുകളും രൂപീകരിച്ച ബ്ലോക്കുകൾ കണക്കിലെടുത്ത് വേരിയബിളുകളുടെ അസ്തിത്വം.
- ഉപയോഗശൂന്യമായ തരം കാസ്റ്റുകളും (ഉദാ. "(സ്ട്രിംഗ്) 'foo'") വ്യത്യസ്ത തരങ്ങളും പ്രവർത്തനങ്ങളുമുള്ള ഡാറ്റയിൽ കർശനമായ പരിശോധനകളും ("===" കൂടാതെ "!==") എപ്പോഴും തെറ്റായി നൽകുന്നവ.
PHPStan 1.0-ലെ പ്രധാന കണ്ടുപിടുത്തങ്ങൾ:
- "9" ചെക്ക് ലെവൽ നടപ്പിലാക്കി, അത് "മിക്സഡ്" തരത്തിന്റെ ഉപയോഗം പരിശോധിക്കുന്നു, വ്യത്യസ്ത തരങ്ങളുള്ള പാരാമീറ്ററുകളുടെ ഫംഗ്ഷന്റെ സ്വീകരണം സംഘടിപ്പിക്കുന്നതിന് ഉദ്ദേശിച്ചുള്ളതാണ്. ലെവൽ XNUMX "മിക്സഡ്" എന്നതിന്റെ സുരക്ഷിതമല്ലാത്ത ഉപയോഗങ്ങൾ തിരിച്ചറിയുന്നു, ഉദാഹരണത്തിന്, "മിക്സഡ്" എന്ന തരത്തിന്റെ മൂല്യങ്ങൾ മറ്റൊരു തരത്തിലേക്ക് കൈമാറുക, രീതികളെ "മിക്സഡ്" എന്ന് വിളിക്കുക, അവ നിലവിലില്ല എന്നതിനാൽ അതിന്റെ പ്രോപ്പർട്ടികൾ ആക്സസ് ചെയ്യുക.
- @phpstan-pure, @phpstan-impure വ്യാഖ്യാനങ്ങൾ ഉപയോഗിച്ച് സമാന ഫംഗ്ഷൻ കോളുകൾക്ക് റിട്ടേൺ മൂല്യങ്ങൾ സമാനമാണോ എന്ന് നിയന്ത്രിക്കുക.
- @throws വ്യാഖ്യാനങ്ങൾ ഉപയോഗിച്ച് try-catch-finally constructs-ൽ വിശകലനം ടൈപ്പ് ചെയ്യുക.
- നിർവചിക്കപ്പെട്ടതും എന്നാൽ ഉപയോഗിക്കാത്തതുമായ ആന്തരിക (സ്വകാര്യ) പ്രോപ്പർട്ടികൾ, രീതികൾ, സ്ഥിരാങ്കങ്ങൾ എന്നിവയുടെ തിരിച്ചറിയൽ.
- array_map, usort എന്നിവ പോലുള്ള അറേ ഫംഗ്ഷനുകളിലേക്ക് അനുയോജ്യമല്ലാത്ത കോൾബാക്കുകൾ കൈമാറുന്നു.
- നഷ്ടമായ ടൈപ്പ്ഹൈന്റ് വ്യാഖ്യാനങ്ങൾക്കുള്ള ടൈപ്പ് പരിശോധന.
- PHPDocs-ന് അനുയോജ്യമായ തരത്തിലുള്ള പ്രഖ്യാപനങ്ങൾ ഉണ്ടാക്കി, പിശക് സന്ദേശങ്ങളിൽ നിന്നുള്ള തരങ്ങൾ PHPDocs-ൽ ഉപയോഗിക്കാൻ അനുവദിക്കുന്നു.
അവലംബം: opennet.ru