Vimeo компани
Дуулал нь төрөл бүрийн буруу хэрэглээтэй холбоотой ихэнх асуудлуудыг тодорхойлдог
Нэмж хэлэхэд, зөвшөөрөхийн тулд аюулгүй програмчлалын хэрэгслүүдээр хангагдсан
/** @var string|null */
$a = foo();
/** @var мөр $a */
echo strpos($a, 'сайн уу');
/** @psalm-assert-if-true B $a */
функц ньValidB(A $a): bool {
буцаах $a instanceof B && $a->isValid();
}
Олдсон асуудлуудыг автоматжуулахын тулд залгаасуудыг дэмждэг Psalter хэрэгслийг өгсөн болно.
Дуулал номын шинэ дугаарт
Баталгаажуулалтыг echo, exec, include, header зэрэг функцуудыг ашиглах үед ашигладаг. Зугтах хэрэгцээг шинжлэхдээ текст, SQL, HTML, Shell код бүхий мөр, баталгаажуулалтын параметр бүхий мөр зэрэг өгөгдлийн төрлийг харгалзан үздэг. Санал болгож буй горим нь сайт хоорондын скрипт (XSS) эсвэл SQL орлуулалтад хүргэдэг кодын эмзэг байдлыг тодорхойлох боломжийг танд олгоно.
Нэмж дурдахад үүнийг тэмдэглэж болно
-
Оруулах JIT хөрвүүлэгч , үүнийг ашигласнаар бүтээмж дээшилнэ. - тусламж
эвлэлийн төрлүүд , хоёр буюу түүнээс дээш төрлийн цуглуулгуудыг тодорхойлох (жишээлбэл, “нийтийн функц foo(Foo|Bar $input): int|float;”). - тусламж
шинж чанарууд Docblock синтакс ашиглахгүйгээр мета өгөгдлийг (төрлийн мэдээлэл гэх мэт) ангиудтай холбох боломжийг олгодог (тэмдэглэгээ). -
Богиночилсан синтакс Ангийн тодорхойлолтууд нь бүтээгч болон шинж чанаруудын тодорхойлолтыг нэгтгэх боломжийг олгодог. - Шинэ буцах төрөл -
статик . - Шинэ төрөл -
холимог , функц нь өөр өөр төрлийн параметрүүдийг хүлээн авах эсэхийг тодорхойлоход ашиглаж болно. - Үг хэлэх
хаях үл хамаарах зүйлсийг зохицуулах. -
Сул газрын зураг хог цуглуулах явцад золиослох боломжтой объектуудыг бий болгох (жишээлбэл, шаардлагагүй кэш хадгалах). -
Боломж объектын хувьд “::class” илэрхийллийг ашиглан (get_class() дуудахтай адил). -
Боломж хувьсагчдад үл хамаарах үл хамаарах зүйлсийн catch блок дахь тодорхойлолтууд. -
Боломж функцийн параметрийн жагсаалтын сүүлчийн элементийн ард таслал үлдээнэ. - Шинэ интерфейс
Утастай тэмдэгт мөр болгон хувиргаж болох аливаа мөрийн төрөл эсвэл өгөгдлийг тодорхойлох (үүнд __toString() аргыг ашиглах боломжтой). - Шинэ шинж тэмдэг
str_contains() , дэд мөр үүсэхийг тодорхойлоход зориулсан strpos-ийн хялбаршуулсан аналог, мөн мөрийн эхэн ба төгсгөлд тохирохыг шалгах str_starts_with() болон str_ends_with() функцууд. - Нэмэлт функц
fdiv() , тэгээр хуваахад алдаа гаргахгүйгээр хуваах үйлдлийг гүйцэтгэдэг. -
Өөрчлөгдсөн стринг холбох логик. Жишээ нь, илэрхийлэл 'echo "sum:" . $a + $b'-г өмнө нь 'echo ("sum: " . $a) + $b' гэж тайлбарлаж байсан ба PHP 8-д 'echo "sum:" гэж ажиллах болно. ($a + $b)'. -
Чанасан арифметик болон битийн үйлдлүүдийг шалгах, жишээлбэл, "[] % [42]" ба "$объект + 4" илэрхийлэл нь алдаа гаргах болно. -
Хэрэгжүүлсэн ижил утгуудын дарааллыг өөр өөр гүйдлээр хадгалдаг тогтвортой эрэмбэлэх алгоритм.
Эх сурвалж: opennet.ru