د زبور 3.12 خوشې کول، د پی ایچ پی ژبې لپاره یو جامد تحلیل کونکی. د PHP 8.0 الفا خوشې کول

د Vimeo شرکت خپور شوی د جامد شنونکي نوې خوشې کول زبور 3.12، کوم چې تاسو ته اجازه درکوي په پی ایچ پی کوډ کې دواړه څرګند او فرعي غلطۍ وپیژني ، په بیله بیا په اتوماتيک ډول ځینې ډول غلطۍ سم کړئ. سیسټم د میراث کوډ او کوډ کې د ستونزو پیژندلو لپاره مناسب دی چې د PHP په نویو څانګو کې معرفي شوي عصري ځانګړتیاوې کاروي. د پروژې کوډ په PHP کې لیکل شوی او لخوا توزیع شوی د MIT جواز لاندې.

زبور د غلط ډول کارولو سره تړلې ډیری ستونزې په ګوته کوي ، او همدارنګه مختلف عادي تېروتنې. د مثال په توګه، دا په بیان کې د مختلف ډولونو متغیرونو مخلوط کولو په اړه د اخطارونو ملاتړ کوي، غلط منطقي ازموینې (لکه "که ($a && $a) {}"، "که ($a && !$a) {}" او " که ($a) {} elseif ($a) {}")، د څیز د ملکیتونو نیمګړتیا پیل کول. تحلیل کونکی په څو اړخیز حالت کې پرمخ ځي. دا ممکنه ده چې زیاتیدونکي سکینونه ترسره کړئ، کوم چې یوازې هغه فایلونه تحلیلوي چې د وروستي سکین راهیسې بدل شوي.

برسیره پردې، د خوندي پروګرام کولو وسایل چمتو شوي ترڅو اجازه ورکړي کارول په شکل کې تشریحات Docblock ("/** @var ډول */") د متغیر ډولونو، بیرته ستنیدو ارزښتونو، د فعالیت پیرامیټونو، د اعتراض ملکیتونو په اړه معلومات چمتو کولو لپاره. د کارونې ډولونو تعریف کول او د اصرار بیاناتو کارول هم ملاتړ کیږي. د مثال په ډول:

/** @var string|null*/
$a = foo();

/** @var تار $a */
echo strpos($a, 'hello');

/**@psalm-assert-if-real B$a*/
فعل isValidB(A $a): bool {
د B && $a->isValid();
}

د موندلو ستونزو له مینځه وړلو اتومات کولو لپاره ، د Psalter یوټیلیټ چمتو شوی ، کوم چې د پلگ انونو ملاتړ کوي او دا اجازه ورکوي د عام کوډ ستونزې حل کړئ، د ډول تشریحات اضافه کړئ، او لاسوهنې ترسره کړئ لکه د یو نوم ځای څخه بل ځای ته د ټولګیو لیږدول، د ټولګیو ترمنځ د میتودونو حرکت کول، او د ټولګیو او میتودونو نوم بدلول.

د زبور په نوې ګڼه کې پلي شوي د "--taint-analysis" اختیار تاسو ته اجازه درکوي چې د کارونکي څخه ترلاسه شوي ان پټ پیرامیټونو ترمنځ اړیکه تعقیب کړئ (د مثال په توګه، $ _GET['name']) او د دوی کارول په هغه ځایونو کې چې د کرکټر تښتیدلو ته اړتیا لري (د مثال په توګه، echo" $نوم ")، په شمول د منځنۍ دندې او فنکشن زنګونو د تعقیب زنځیرونو له لارې. $_GET، $_POST او $_COOKIE د متحدینو کارول د احتمالي خطرناکو معلوماتو سرچینې په توګه ګڼل کیږي، مګر دا هم ممکنه ده تعریف خپلې سرچینې. هغه عملونه چې د تیښتې تعقیب ته اړتیا لري د محصول عملیات شامل دي چې د HTML مینځپانګې رامینځته کوي ، د HTTP سرلیکونه اضافه کوي ، یا د SQL پوښتنو اجرا کوي.

تایید کارول کیږي کله چې د فنکشنونو لکه echo، exec، شامل او سرلیک کاروي. کله چې د تیښتې اړتیا تحلیل کړئ ، د ډیټا ډولونه لکه متن ، د SQL سره تارونه ، HTML او شیل کوډ ، د تصدیق پیرامیټونو سره تارونه په پام کې نیول کیږي. وړاندیز شوی حالت تاسو ته اجازه درکوي په کوډ کې زیان منونکي وپیژني چې د کراس سایټ سکریپټینګ (XSS) یا SQL بدیل لامل کیږي.

سربیره پردې، دا په پام کې نیول کیدی شي پیل د نوي PHP 8.0 څانګې الفا ازموینه. ریلیز د نومبر په 26 نیټه ټاکل شوی. په نوې څانګه کې لاندې تمه کیږي: نوښتونهلکه:

  • بریښنا د JIT کمپیلر، چې کارول به یې تولید ښه کړي.
  • ملاتړ د اتحاد ډولونه، د دوه یا ډیرو ډولونو ټولګه تعریف کول (د مثال په توګه ، "د عامه فعالیت foo(Foo|Bar $input): int|float؛").
  • ملاتړ صفات (تشریحات) چې تاسو ته اجازه درکوي میټاډاټا (لکه د ډول معلومات) د Docblock ترکیب کارولو پرته ټولګیو ته وتړئ.
  • لنډه ترکیب د ټولګي تعریفونه، تاسو ته اجازه درکوي چې د جوړونکي او ملکیت تعریف سره یوځای کړئ.
  • د بیرته راستنیدو نوی ډول - جامد.
  • نوی ډول - مخلوط، کوم چې د دې لپاره کارول کیدی شي چې ایا یو فنکشن د مختلف ډولونو پیرامیټونه مني.
  • څرګندونه غورځوي د استثنااتو اداره کول.
  • کمزوری نقشه د هغه شیانو رامینځته کول چې د کثافاتو راټولولو پرمهال قرباني کیدی شي (د مثال په توګه ، غیر ضروري کیچ ذخیره کول).
  • فرصت د شیانو لپاره د "::کلاس" کلمې کارول (د get_class () زنګ وهلو سره ورته والی).
  • فرصت د استثناء په کیچ بلاک کې تعریفونه چې په متغیرونو پورې تړلي ندي.
  • فرصت د فعالیت پیرامیټونو لیست کې د وروستي عنصر وروسته کوما پریښودل.
  • نوی انٹرفیس د تار وړ وړ د هر ډول تار ډولونو یا ډیټا پیژندلو لپاره چې په تار کې بدلیدلی شي (د کوم لپاره چې د __toString() میتود شتون لري).
  • نوې ځانګړتیا str_contains(), د سبسټرینګ د واقع کیدو د ټاکلو لپاره د strpos ساده انلاګ، او همدارنګه د str_starts_with() او str_ends_with() د سټینګ په پیل او پای کې د میچونو چک کولو لپاره افعال.
  • اضافه شوی خصوصیت fdiv()، کوم چې د ویش عملیات ترسره کوي پرته له دې چې د صفر په واسطه ویشلو کې کومه تېروتنه وکړي.
  • بدل شو د تار د یوځای کیدو منطق. د مثال په توګه، بیان 'echo "مجموعه:". $a + $b' پخوا د 'echo ("مجموعه: ". $a) + $b' په توګه تشریح شوی و، او په PHP 8 کې به د "echo" sum: " په توګه چلند وشي. ($a + $b)'.
  • سخت شوی د ریاضیاتو او بټ عملیاتو چک کول، د بیلګې په توګه، د "[] % [42]" او "$object + 4" څرګندونې به د تېروتنې پایله ولري.
  • پلي شوي یو باثباته ترتیب کولو الګوریتم په کوم کې چې د ورته ارزښتونو ترتیب په مختلفو منډو کې ساتل کیږي.

سرچینه: opennet.ru

Add a comment