PHP කේතය සඳහා ස්ථිතික විශ්ලේෂකයක් වන PHPStan 1.0 නිකුත් කිරීම

වසර හයක සංවර්ධනයෙන් පසුව, ස්ථිතික විශ්ලේෂක PHPStan 1.0 හි පළමු ස්ථාවර නිකුතුව සිදු වූ අතර, එය ක්‍රියාත්මක නොකර ඒකක පරීක්ෂණ භාවිතා නොකර PHP කේතයේ දෝෂ සොයා ගැනීමට ඔබට ඉඩ සලසයි. ව්‍යාපෘති කේතය PHP වලින් ලියා MIT බලපත්‍රය යටතේ බෙදා හරිනු ලැබේ.

විශ්ලේෂකය පිරික්සුම් මට්ටම් 10 ක් සපයන අතර, එක් එක් ඊළඟ මට්ටම පෙර පැවති හැකියාවන් පුළුල් කරන අතර වඩාත් දැඩි චෙක්පත් සපයයි:

  • මූලික චෙක්පත්, නොදන්නා පන්ති, ශ්‍රිත සහ ක්‍රම ($මෙය), නිර්වචනය නොකළ විචල්‍යයන් සහ වැරදි තර්ක සංඛ්‍යාවක් සම්මත කිරීම.
  • __call සහ __get සමඟින් නිර්වචනය නොකළ හැකි විචල්‍යයන්, නොදන්නා මැජික් ක්‍රම සහ පන්තිවල ගුණාංග හඳුනා ගැනීම.
  • $this හරහා ඇමතුම්වලට සීමා නොවී, සියලුම ප්‍රකාශනවල නොදන්නා ක්‍රම හඳුනාගැනීම. PHPDocs පරීක්ෂා කිරීම.
  • ප්‍රතිලාභ වර්ග පරීක්ෂා කිරීම සහ ගුණාංගවලට වර්ග පැවරීම.
  • "මියගිය" (කවදාවත් හැඳින්වූ) කේතයේ මූලික හඳුනාගැනීම. සෑම විටම අසත්‍ය ඇමතුම් ලබා දෙන අවස්ථා, කිසිදා වෙඩි නොතබන "වෙනත්" අවහිර කිරීම් සහ ආපසු පැමිණීමෙන් පසු කේතය හඳුනා ගන්න.
  • ක්‍රම සහ ශ්‍රිත වෙත ලබා දුන් තර්ක වර්ග පරීක්ෂා කිරීම.
  • නැතිවූ ආකාරයේ තොරතුරු විවරණ පිළිබඳ අනතුරු ඇඟවීම.
  • වර්ග දෙකක හෝ වැඩි ගණනක එකතු කිරීම් නිර්වචනය කරන වැරදි වෘත්තීය සමිති වර්ග ගැන අනතුරු ඇඟවීම.
  • "nullable" වර්ග සමඟින් ඇමතුම් ක්‍රම සහ දේපල වෙත ප්‍රවේශ වීම ගැන අනතුරු ඇඟවීම.
  • "මිශ්ර" වර්ගයේ භාවිතය පරීක්ෂා කිරීම.

    හඳුනාගත් යටින් පවතින ගැටළු සඳහා උදාහරණ:

    • උදාහරණ, අල්ලා ගැනීම, යතුරු ලියනය සහ වෙනත් භාෂා නිර්මාණ සඳහා භාවිතා කරන පන්තිවල පැවැත්ම.
    • යනුවෙන් හැඳින්වෙන ක්‍රම සහ ශ්‍රිතවල පැවැත්ම සහ ලබා ගැනීම මෙන්ම සම්මත වූ තර්ක ගණන.
    • ආපසු ප්‍රකාශනයේ අර්ථ දක්වා ඇති ආකාරයටම ක්‍රමය මඟින් දත්ත ලබා දෙන බව පරීක්ෂා කිරීම.
    • ප්‍රවේශ වන ගුණාංගවල පැවැත්ම සහ දෘශ්‍යතාව, සහ ගුණාංගවල භාවිතා වන ප්‍රකාශිත සහ සත්‍ය දත්ත වර්ග පරීක්ෂා කිරීම.
    • string Formatting block හි ඇති sprintf/printf ඇමතුම් වෙත ලබා දුන් පරාමිති ගණන නිවැරදිය.
    • ශාඛා ක්‍රියාකරුවන් සහ ලූප මගින් සාදන ලද බ්ලොක් සැලකිල්ලට ගනිමින් විචල්‍යයන්ගේ පැවැත්ම.
    • නිෂ්ඵල ආකාරයේ වාත්තු (උදා. "(string) 'foo'") සහ සෑම විටම අසත්‍ය ලෙස ලබා දෙන විවිධ වර්ග සහ මෙහෙයුම් සහිත දත්ත මත දැඩි පරීක්ෂණ ("===" සහ "!==").

    PHPStan 1.0 හි ප්‍රධාන නවෝත්පාදන:

    • "9" පිරික්සුම් මට්ටම ක්රියාත්මක කර ඇත, එය "මිශ්ර" වර්ගය භාවිතා කිරීම පරීක්ෂා කරයි, විවිධ වර්ගවල පරාමිතීන්ගේ ශ්රිතයේ පිළිගැනීම් සංවිධානය කිරීම සඳහා අදහස් කෙරේ. XNUMX වන මට්ටම මගින් "මිශ්‍ර" වර්ගයේ අගයන් වෙනත් වර්ගයකට යැවීම, "මිශ්‍ර" ආකාරයේ ක්‍රම ඇමතීම සහ ඒවා නොපවතින බැවින් එහි ගුණාංග වෙත ප්‍රවේශ වීම වැනි "මිශ්‍ර" වල අනාරක්ෂිත භාවිතයන් හඳුනා ගනී.
    • @phpstan-pure සහ @phpstan-impure විවරණ භාවිතයෙන් සමාන ශ්‍රිත ඇමතුම් සඳහා ප්‍රතිලාභ අගයන් සමානද යන්න පාලනය කරන්න.
    • @throws අනුසටහන් භාවිතයෙන් try-catch-finally constructs තුළ විශ්ලේෂණය ටයිප් කරන්න.
    • නිර්වචනය කරන ලද නමුත් භාවිතයට නොගත් අභ්යන්තර (පුද්ගලික) ගුණාංග, ක්රම සහ නියතයන් හඳුනා ගැනීම.
    • array_map සහ usort වැනි අරා ශ්‍රිතවලට නොගැලපෙන ඇමතුම් යැවීම.
    • අස්ථානගත වූ යතුරු ලියන විවරණ සඳහා ටයිප් පරීක්ෂාව.
    • PHPDocs සමඟ අනුකූල වන ආකාරයේ ප්‍රකාශන සාදන ලද අතර, PHPDocs තුළ දෝෂ පණිවිඩ වලින් වර්ග භාවිතා කිරීමට ඉඩ සලසයි.

    මූලාශ්රය: opennet.ru

  • අදහස් එක් කරන්න