ஆறு வருட வளர்ச்சிக்குப் பிறகு, நிலையான பகுப்பாய்வி PHPStan 1.0 இன் முதல் நிலையான வெளியீடு நடந்தது, இது PHP குறியீட்டை இயக்காமல் மற்றும் யூனிட் சோதனைகளைப் பயன்படுத்தாமல் பிழைகளைக் கண்டறிய உங்களை அனுமதிக்கிறது. திட்டக் குறியீடு PHP இல் எழுதப்பட்டு MIT உரிமத்தின் கீழ் விநியோகிக்கப்படுகிறது.
பகுப்பாய்வி 10 நிலை சோதனைகளை வழங்குகிறது, இதில் ஒவ்வொரு அடுத்த நிலையும் முந்தையவற்றின் திறன்களை விரிவுபடுத்துகிறது மற்றும் மிகவும் கடுமையான சோதனைகளை வழங்குகிறது:
அடையாளம் காணப்பட்ட அடிப்படை சிக்கல்களின் எடுத்துக்காட்டுகள்:
- உதாரணமாக, பிடிப்பு, தட்டச்சு குறிப்புகள் மற்றும் பிற மொழி கட்டமைப்புகளில் பயன்படுத்தப்படும் வகுப்புகளின் இருப்பு.
- எனப்படும் முறைகள் மற்றும் செயல்பாடுகளின் இருப்பு மற்றும் கிடைக்கும் தன்மை, அத்துடன் நிறைவேற்றப்பட்ட வாதங்களின் எண்ணிக்கை.
- ரிட்டர்ன் எக்ஸ்ப்ரெஷனில் வரையறுக்கப்பட்டுள்ள அதே வகையுடன் முறையானது தரவைத் தருகிறதா என்பதைச் சரிபார்க்கிறது.
- அணுகப்படும் பண்புகளின் இருப்பு மற்றும் தெரிவுநிலை மற்றும் பண்புகளில் பயன்படுத்தப்படும் அறிவிக்கப்பட்ட மற்றும் உண்மையான தரவு வகைகளைச் சரிபார்த்தல்.
- சரம் வடிவமைத்தல் தொகுதியில் sprintf/printf அழைப்புகளுக்கு அனுப்பப்பட்ட அளவுருக்களின் எண்ணிக்கை சரியானது.
- கிளை ஆபரேட்டர்கள் மற்றும் சுழல்களால் உருவாக்கப்பட்ட தொகுதிகளை கணக்கில் எடுத்துக்கொண்டு மாறிகளின் இருப்பு.
- பயனற்ற வகை காஸ்ட்கள் (எ.கா. "(ஸ்ட்ரிங்) 'foo'") மற்றும் பல்வேறு வகையான மற்றும் செயல்பாடுகளைக் கொண்ட தரவுகளில் கடுமையான சோதனைகள் ("===" மற்றும் "!==") எப்போதும் தவறானவையாகத் திரும்பும்.
PHPStan 1.0 இல் முக்கிய கண்டுபிடிப்புகள்:
- "9" சரிபார்ப்பு நிலை செயல்படுத்தப்பட்டது, இது "கலப்பு" வகையின் பயன்பாட்டை சரிபார்க்கிறது, இது பல்வேறு வகைகளுடன் அளவுருக்களின் செயல்பாட்டின் வரவேற்பை ஒழுங்கமைக்க நோக்கம் கொண்டது. நிலை XNUMX ஆனது "கலப்பு" வகையின் பாதுகாப்பற்ற பயன்பாடுகளை அடையாளம் காட்டுகிறது, அதாவது "கலப்பு" வகையின் மதிப்புகளை மற்றொரு வகைக்கு அனுப்புதல், வகையின் முறைகளை "கலப்பு" என்று அழைப்பது மற்றும் அவை இல்லாததால் அதன் பண்புகளை அணுகுவது.
- @phpstan-pure மற்றும் @phpstan-impure சிறுகுறிப்புகளைப் பயன்படுத்தி ஒரே மாதிரியான செயல்பாட்டு அழைப்புகளுக்கு திரும்பும் மதிப்புகள் ஒரே மாதிரியாக உள்ளதா என்பதைக் கட்டுப்படுத்தவும்.
- @throws சிறுகுறிப்புகளைப் பயன்படுத்தி டிரை-கேட்ச்-ஃபைனலி கன்ஸ்ட்ரக்ட்களில் பகுப்பாய்வு வகையைச் செய்யவும்.
- வரையறுக்கப்பட்ட ஆனால் பயன்படுத்தப்படாத உள் (தனியார்) பண்புகள், முறைகள் மற்றும் மாறிலிகளின் அடையாளம்.
- array_map மற்றும் usort போன்ற வரிசை செயல்பாடுகளுக்கு பொருந்தாத கால்பேக்குகளை அனுப்புகிறது.
- விடுபட்ட டைப்ஹின்ட் குறிப்புகளுக்கான வகை ஆய்வு.
- PHPDocs உடன் இணக்கமான வகை அறிவிப்புகளை உருவாக்கியது, PHPDocs இல் பிழை செய்திகளிலிருந்து வகைகளைப் பயன்படுத்த அனுமதிக்கிறது.
ஆதாரம்: opennet.ru