چھ سال کی ترقی کے بعد، جامد تجزیہ کار PHPStan 1.0 کی پہلی مستحکم ریلیز ہوئی، جو آپ کو PHP کوڈ میں اس پر عمل کیے بغیر اور یونٹ ٹیسٹ استعمال کیے بغیر غلطیوں کو تلاش کرنے کی اجازت دیتا ہے۔ پروجیکٹ کوڈ پی ایچ پی میں لکھا جاتا ہے اور MIT لائسنس کے تحت تقسیم کیا جاتا ہے۔
تجزیہ کار جانچ کے 10 درجات فراہم کرتا ہے، جس میں ہر بعد کی سطح گزشتہ کی صلاحیتوں کو بڑھاتی ہے اور مزید سخت جانچ فراہم کرتی ہے:
شناخت شدہ بنیادی مسائل کی مثالیں:
- مثال کے طور پر، کیچ، ٹائپہنٹ اور دیگر زبان کی تعمیر میں استعمال ہونے والی کلاسوں کا وجود۔
- کہلائے گئے طریقوں اور افعال کی موجودگی اور دستیابی کے ساتھ ساتھ منظور شدہ دلائل کی تعداد۔
- چیک کرنا کہ طریقہ اسی قسم کے ڈیٹا کو واپس کرتا ہے جیسا کہ واپسی کے اظہار میں بیان کیا گیا ہے۔
- رسائی کی جا رہی خصوصیات کے وجود اور مرئیت، اور پراپرٹیز میں استعمال ہونے والے اعلان کردہ اور حقیقی ڈیٹا کی اقسام کی جانچ کرنا۔
- سٹرنگ فارمیٹنگ بلاک میں sprintf/printf کالز کو پاس کیے گئے پیرامیٹرز کی تعداد درست ہے۔
- برانچنگ آپریٹرز اور لوپس کے ذریعہ بنائے گئے اکاؤنٹ بلاکس کو مدنظر رکھتے ہوئے متغیرات کا وجود۔
- بیکار قسم کے کاسٹ (مثال کے طور پر "(string) 'foo'") اور سخت ٹیسٹ ("===" اور "!==") مختلف اقسام اور آپرینڈز کے ساتھ ڈیٹا پر جو ہمیشہ غلط لوٹتے ہیں۔
PHPStan 1.0 میں اہم اختراعات:
- "9" چیک لیول کو لاگو کیا گیا ہے، جو "مکسڈ" قسم کے استعمال کو چیک کرتا ہے، جس کا مقصد مختلف اقسام کے پیرامیٹرز کے فنکشن کے استقبال کو منظم کرنا ہے۔ لیول XNUMX "مخلوط" کے غیر محفوظ استعمال کی نشاندہی کرتا ہے، جیسے "مکسڈ" قسم کی قدروں کو دوسری قسم میں منتقل کرنا، قسم کے طریقوں کو "مکسڈ" کہنا اور اس کی خصوصیات تک رسائی حاصل کرنا کیونکہ ممکن ہے کہ وہ موجود نہ ہوں۔
- @phpstan-pure اور @phpstan-impure تشریحات کا استعمال کرتے ہوئے کنٹرول کریں کہ آیا واپسی کی قدریں ایک جیسی فنکشن کالز کے لیے ایک جیسی ہیں۔
- ٹرائی-کیچ-آخر میں @throws تشریحات کا استعمال کرتے ہوئے تعمیرات میں ٹائپ تجزیہ کریں۔
- متعین لیکن غیر استعمال شدہ اندرونی (نجی) خصوصیات، طریقوں اور مستقل کی شناخت۔
- صف کے فنکشنز جیسے array_map اور usort میں غیر موافق کال بیکس کو منتقل کرنا۔
- گمشدہ ٹائپہنٹ تشریحات کے لیے قسم کا معائنہ۔
- PHPDocs کے ساتھ ہم آہنگ قسم کے اعلانات بنائے گئے ہیں، جس سے PHPDocs میں خرابی کے پیغامات کی قسمیں استعمال کی جا سکتی ہیں۔
ماخذ: opennet.ru