PHPStan 1.0 کی ریلیز، PHP کوڈ کے لیے ایک جامد تجزیہ کار

چھ سال کی ترقی کے بعد، جامد تجزیہ کار PHPStan 1.0 کی پہلی مستحکم ریلیز ہوئی، جو آپ کو PHP کوڈ میں اس پر عمل کیے بغیر اور یونٹ ٹیسٹ استعمال کیے بغیر غلطیوں کو تلاش کرنے کی اجازت دیتا ہے۔ پروجیکٹ کوڈ پی ایچ پی میں لکھا جاتا ہے اور MIT لائسنس کے تحت تقسیم کیا جاتا ہے۔

تجزیہ کار جانچ کے 10 درجات فراہم کرتا ہے، جس میں ہر بعد کی سطح گزشتہ کی صلاحیتوں کو بڑھاتی ہے اور مزید سخت جانچ فراہم کرتی ہے:

  • بنیادی چیک، نامعلوم کلاسز، فنکشنز اور طریقے ($this) کی وضاحت، غیر متعینہ متغیرات، اور دلائل کی غلط تعداد کو پاس کرنا۔
  • __call اور __get کے ساتھ ممکنہ طور پر غیر متعینہ متغیرات، نامعلوم جادوئی طریقوں اور کلاسوں کی خصوصیات کی نشاندہی کرنا۔
  • تمام اظہارات میں نامعلوم طریقوں کا پتہ لگانا، $this کے ذریعے کالوں تک محدود نہیں۔ PHPDocs کی جانچ ہو رہی ہے۔
  • واپسی کی اقسام کی جانچ کرنا اور خصوصیات کو اقسام تفویض کرنا۔
  • "مردہ" (کبھی نہیں بلایا جاتا) کوڈ کی بنیادی شناخت۔ ان کالوں کی مثالوں کی شناخت کریں جو ہمیشہ جھوٹی واپس آتی ہیں، "دوسرے" بلاکس جو فائر نہیں ہوتے ہیں، اور واپسی کے بعد کوڈ۔
  • طریقوں اور افعال کو بھیجے گئے دلائل کی اقسام کی جانچ کرنا۔
  • گمشدہ قسم کی معلوماتی تشریحات کے بارے میں انتباہ۔
  • غلط یونین کی اقسام کے بارے میں انتباہ جو دو یا زیادہ اقسام کے مجموعوں کی وضاحت کرتی ہے۔
  • کال کرنے کے طریقوں کے بارے میں انتباہ اور قسموں کے ساتھ پراپرٹیز تک رسائی حاصل کرنا "نیل ایبل"۔
  • "مخلوط" قسم کے استعمال کی جانچ کرنا۔

    شناخت شدہ بنیادی مسائل کی مثالیں:

    • مثال کے طور پر، کیچ، ٹائپہنٹ اور دیگر زبان کی تعمیر میں استعمال ہونے والی کلاسوں کا وجود۔
    • کہلائے گئے طریقوں اور افعال کی موجودگی اور دستیابی کے ساتھ ساتھ منظور شدہ دلائل کی تعداد۔
    • چیک کرنا کہ طریقہ اسی قسم کے ڈیٹا کو واپس کرتا ہے جیسا کہ واپسی کے اظہار میں بیان کیا گیا ہے۔
    • رسائی کی جا رہی خصوصیات کے وجود اور مرئیت، اور پراپرٹیز میں استعمال ہونے والے اعلان کردہ اور حقیقی ڈیٹا کی اقسام کی جانچ کرنا۔
    • سٹرنگ فارمیٹنگ بلاک میں sprintf/printf کالز کو پاس کیے گئے پیرامیٹرز کی تعداد درست ہے۔
    • برانچنگ آپریٹرز اور لوپس کے ذریعہ بنائے گئے اکاؤنٹ بلاکس کو مدنظر رکھتے ہوئے متغیرات کا وجود۔
    • بیکار قسم کے کاسٹ (مثال کے طور پر "(string) 'foo'") اور سخت ٹیسٹ ("===" اور "!==") مختلف اقسام اور آپرینڈز کے ساتھ ڈیٹا پر جو ہمیشہ غلط لوٹتے ہیں۔

    PHPStan 1.0 میں اہم اختراعات:

    • "9" چیک لیول کو لاگو کیا گیا ہے، جو "مکسڈ" قسم کے استعمال کو چیک کرتا ہے، جس کا مقصد مختلف اقسام کے پیرامیٹرز کے فنکشن کے استقبال کو منظم کرنا ہے۔ لیول XNUMX "مخلوط" کے غیر محفوظ استعمال کی نشاندہی کرتا ہے، جیسے "مکسڈ" قسم کی قدروں کو دوسری قسم میں منتقل کرنا، قسم کے طریقوں کو "مکسڈ" کہنا اور اس کی خصوصیات تک رسائی حاصل کرنا کیونکہ ممکن ہے کہ وہ موجود نہ ہوں۔
    • @phpstan-pure اور @phpstan-impure تشریحات کا استعمال کرتے ہوئے کنٹرول کریں کہ آیا واپسی کی قدریں ایک جیسی فنکشن کالز کے لیے ایک جیسی ہیں۔
    • ٹرائی-کیچ-آخر میں @throws تشریحات کا استعمال کرتے ہوئے تعمیرات میں ٹائپ تجزیہ کریں۔
    • متعین لیکن غیر استعمال شدہ اندرونی (نجی) خصوصیات، طریقوں اور مستقل کی شناخت۔
    • صف کے فنکشنز جیسے array_map اور usort میں غیر موافق کال بیکس کو منتقل کرنا۔
    • گمشدہ ٹائپہنٹ تشریحات کے لیے قسم کا معائنہ۔
    • PHPDocs کے ساتھ ہم آہنگ قسم کے اعلانات بنائے گئے ہیں، جس سے PHPDocs میں خرابی کے پیغامات کی قسمیں استعمال کی جا سکتی ہیں۔

    ماخذ: opennet.ru

  • نیا تبصرہ شامل کریں