پی ایچ پی 8.2 کی الفا ٹیسٹنگ شروع ہو گئی ہے۔

پی ایچ پی 8.2 پروگرامنگ لینگویج کی نئی برانچ کا پہلا الفا ریلیز پیش کر دیا گیا ہے۔ ریلیز 24 نومبر کو ہونے والی ہے۔ اہم اختراعات جو پہلے سے جانچ کے لیے دستیاب ہیں یا پی ایچ پی 8.2 میں لاگو کرنے کی منصوبہ بندی کی گئی ہیں:

  • "غلط" اور "null" کی الگ الگ قسمیں شامل کی گئیں، جنہیں استعمال کیا جا سکتا ہے، مثال کے طور پر، کسی فنکشن کے لیے غلطی کے خاتمے کا جھنڈا یا خالی قدر واپس کرنے کے لیے۔ پہلے، "false" اور "null" کو صرف دوسری اقسام کے ساتھ استعمال کیا جا سکتا تھا (مثال کے طور پر، "string|false")، لیکن اب انہیں الگ سے استعمال کیا جا سکتا ہے: function alwaysFalse(): false { return false; }
  • کلاس کو صرف پڑھنے کے لیے نشان زد کرنے کی اہلیت شامل کی گئی۔ ایسی کلاسوں میں پراپرٹیز صرف ایک بار سیٹ کی جا سکتی ہیں، اس کے بعد انہیں تبدیل نہیں کیا جا سکتا۔ پہلے، انفرادی کلاس پراپرٹیز کو صرف پڑھنے کے لیے نشان زد کیا جا سکتا تھا، لیکن اب آپ اس موڈ کو تمام کلاس پراپرٹیز کے لیے ایک ساتھ فعال کر سکتے ہیں۔ کلاس کی سطح پر "صرف پڑھنے والے" جھنڈے کی وضاحت کرنا بھی خصوصیات کو کلاس میں متحرک طور پر شامل ہونے سے روکتا ہے۔ صرف پڑھنے والی کلاس پوسٹ { عوامی فنکشن __ تعمیر ( عوامی سٹرنگ $ عنوان، عوامی مصنف $ مصنف، ) {} } $ post = نئی پوسٹ (/* … */); $post-> نامعلوم = 'غلط'؛ // خرابی: متحرک پراپرٹی نہیں بنا سکتا پوسٹ::$ نامعلوم
  • کلاس میں متحرک طور پر خصوصیات بنانے کی صلاحیت (جیسے اوپر کی مثال میں "پوسٹ-> نامعلوم") کو فرسودہ کردیا گیا ہے۔ پی ایچ پی 9.0 میں، ایسی خصوصیات تک رسائی حاصل کرنا جن کی کلاس میں ابتدائی طور پر وضاحت نہیں کی گئی ہے، ایک غلطی (ErrorException) کی صورت میں نکلے گی۔ وہ کلاسز جو پراپرٹیز بنانے کے لیے __get اور __set کے طریقے فراہم کرتی ہیں، یا stdClass میں متحرک پراپرٹیز بغیر کسی تبدیلی کے کام کرتی رہیں گی، صرف غیر موجود خصوصیات کے ساتھ مضمر کام کی مدد کی جائے گی تاکہ ڈویلپر کو پوشیدہ کیڑوں سے بچایا جا سکے۔ پرانے کوڈ کے کام کو محفوظ رکھنے کے لیے، "#[AllowDynamicProperties]" وصف تجویز کیا گیا ہے، جس سے متحرک خصوصیات کے استعمال کی اجازت دی گئی ہے۔
  • خرابی کے دوران اسٹیک ٹریس آؤٹ پٹ میں حساس پیرامیٹرز کو فلٹر کرنے کی صلاحیت فراہم کرتا ہے۔ کچھ معلومات کاٹنا ضروری ہو سکتا ہے جب ہونے والی غلطیوں کے بارے میں معلومات خود بخود فریق ثالث کی خدمات کو بھیجی جاتی ہیں جو مسائل کو ٹریک کرتی ہیں اور ڈویلپرز کو ان کے بارے میں مطلع کرتی ہیں۔ مثال کے طور پر، آپ ایسے پیرامیٹرز کو خارج کر سکتے ہیں جن میں صارف کے نام، پاس ورڈز، اور ماحولیاتی متغیرات شامل ہیں ٹریسنگ سے۔ فنکشن ٹیسٹ ($foo, #[\SensitiveParameter] $password, $baz ) { throw new Exception('Error')؛ } ٹیسٹ ('foo'، 'پاس ورڈ'، 'باز')؛ مہلک خرابی: غیر پکڑی گئی استثنا: test.php میں خرابی: 8 اسٹیک ٹریس: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} test.php میں پھینک دیا گیا لائن 8 پر
  • "${var}" اور ${(var)} کا استعمال کرتے ہوئے متغیر اقدار کو سٹرنگز میں بدلنے کی صلاحیت کو فرسودہ کر دیا گیا ہے۔ عام طور پر استعمال ہونے والے "{$var}" اور "$var" متبادل کے لیے سپورٹ کو برقرار رکھا گیا ہے۔ مثال کے طور پر: "ہیلو {$world}"؛ ٹھیک ہے "ہیلو $world"؛ ٹھیک ہے "ہیلو ${world}"؛ فرسودہ: تاروں میں ${} کا استعمال فرسودہ ہے۔
  • فرسودہ جزوی طور پر تعاون یافتہ کال ایبلز جنہیں "call_user_func($callable)" کے ذریعے کال کیا جا سکتا ہے لیکن "$callable()": "self::method" "parent::method" "static" ::method کی شکل میں کال کی حمایت نہیں کرتے " ["خود"، "طریقہ"] ["والدین"، "طریقہ"] ["جامد"، "طریقہ"] ["فو"، "بار:: طریقہ"] [نیا فو، "بار:: طریقہ" ]
  • مقامی سے آزاد کیس کی تبدیلی کو نافذ کیا گیا۔ strtolower() اور strtoupper() جیسے فنکشنز اب ہمیشہ ASCII رینج میں حروف کے کیس کو اس طرح تبدیل کرتے ہیں جیسے "C" لوکیل پر سیٹ ہو۔

ماخذ: opennet.ru

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