Sgaoileadh Salm 3.12, anailisiche statach airson cànan PHP. Sgaoileadh Alpha de PHP 8.0

Companaidh Vimeo foillsichte sgaoileadh ùr de anailisiche statach Salm 3.12, a leigeas leat mearachdan follaiseach agus seòlta a chomharrachadh ann an còd PHP, a bharrachd air cuid de mhearachdan a cheartachadh gu fèin-ghluasadach. Tha an siostam freagarrach airson duilgheadasan a chomharrachadh an dà chuid ann an còd dìleab agus ann an còd a chleachdas feartan ùr-nodha a chaidh a thoirt a-steach ann am meuran ùra de PHP. Tha còd a’ phròiseict sgrìobhte ann am PHP agus air a sgaoileadh le fo chead MIT.

Tha Salm a’ comharrachadh a’ mhòr-chuid de na duilgheadasan co-cheangailte ri cleachdadh seòrsa ceàrr, a bharrachd air diofar mearachdan àbhaisteach. Mar eisimpleir, tha e a’ toirt taic do rabhaidhean mu bhith a’ measgachadh caochladairean de dhiofar seòrsa ann an abairt, deuchainnean loidsigeach ceàrr (leithid “ma tha ($a && $a) {}”, “if ($a && !$a) {}” agus “ ma tha ( $a) {} elseif ($a) {}"), tòiseachadh neo-choileanta air feartan an nì. Bidh an anailisiche a’ ruith ann am modh ioma-snàthainn. Tha e comasach sganaidhean mean air mhean a dhèanamh, a nì mion-sgrùdadh air faidhlichean a-mhàin a tha air atharrachadh bhon sgrùdadh mu dheireadh.

A bharrachd air an sin, tha innealan prògramaidh tèarainte air an toirt seachad gus a cheadachadh cleachdadh notaichean ann an cruth Docblock (“/** @var Type */”) gus fiosrachadh a thoirt seachad mu sheòrsan caochlaideach, luachan tilleadh, paramadairean gnìomh, feartan nì. Thathas cuideachd a’ toirt taic do bhith a’ mìneachadh pàtrain cleachdaidh seòrsa agus a’ cleachdadh aithrisean dearbhte. Mar eisimpleir:

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

/** @var sreang $a */
mac-talla strpos ($a, 'hello');

/** @psalm-assert-if-true B $a */
gnìomh isValidB(A $a): bool {
tilleadh $a eisimpleir de B && $a->isValid();
}

Gus cuir às do dhuilgheadasan a chaidh a lorg gu fèin-ghluasadach, tha goireas Psalter air a thoirt seachad, a bheir taic do plugins agus Tha e a 'toirt cothrom fuasgladh fhaighinn air duilgheadasan còd cumanta, cuir notaichean seòrsa ris, agus dèan làimhseachadh mar a bhith a’ gluasad chlasaichean bho aon àite ainm gu àite eile, a’ gluasad dhòighean eadar clasaichean, agus ag ath-ainmeachadh chlasaichean agus dhòighean.

Anns an iris ùr de Salm air a chur an gnìomh Leigidh an roghainn " --taint-analysis" leat an dàimh eadar paramadairean ion-chuir a fhuaireadh bhon chleachdaiche a lorg (mar eisimpleir, $_GET ['name']) agus an cleachdadh ann an àiteachan far a bheil feum air caractar a’ teicheadh ​​(mar eisimpleir, mac-talla" $ ainm "), a’ gabhail a-steach tro bhith a’ cumail sùil air slabhraidhean de shònrachaidhean eadar-mheadhanach agus fiosan gnìomh. Thathas den bheachd gu bheil cleachdadh arrays co-cheangail $_GET, $_POST agus $_COOKIE mar thùsan dàta a dh’ fhaodadh a bhith cunnartach, ach tha e comasach cuideachd определение stòran fhèin. Tha gnìomhan a dh’ fheumas teicheadh ​​​​bho tracadh a’ toirt a-steach gnìomhachd toraidh a ghineas susbaint HTML, cuir cinn HTTP ris, no cuir an gnìomh ceistean SQL.

Bithear a’ cleachdadh dearbhadh nuair a thathar a’ cleachdadh ghnìomhan leithid mac-talla, exec, cuir a-steach agus bann-cinn. Nuair a thathar a’ dèanamh anailis air an fheum air teicheadh, thathas a’ toirt aire do sheòrsan dàta leithid teacsa, sreangan le còd SQL, HTML agus Shell, sreangan le paramadairean dearbhaidh. Leigidh am modh a thathar a’ moladh dhut so-leòntachd a chomharrachadh sa chòd a tha a’ leantainn gu sgrìobhadh thar-làraich (XSS) no ionadachadh SQL.

A bharrachd air an sin, faodar a thoirt fa-near tòiseachadh deuchainn alpha air a’ mheur ùr PHP 8.0. Tha an sgaoileadh clàraichte airson 26 Samhain. Tha dùil ris na leanas anns a’ mheur ùr: innleachdancoltach:

  • Cumha suas Neach-cruinneachaidh JIT, a bheir leasachadh air cinneasachd le bhith ga chleachdadh.
  • taic seòrsaichean aonaidh, a’ mìneachadh cruinneachaidhean de dhà sheòrsa no barrachd (mar eisimpleir, “foo function public(Foo|Bar $input): int|float;”).
  • taic buadhan (notaichean) a leigeas leat meata-dàta a cheangal (leithid fiosrachadh seòrsa) ri clasaichean gun a bhith a’ cleachdadh co-chòrdadh Docblock.
  • Syntax giorraichte mìneachaidhean clas, a 'toirt cothrom dhut mìneachadh neach-togail agus feartan a chur còmhla.
  • Seòrsa tilleadh ùr - socrach.
  • Seòrsa ùr - measgaichte, a dh'fhaodar a chleachdadh gus faighinn a-mach a bheil gnìomh a 'gabhail ri crìochan de dhiofar sheòrsachan.
  • Ciall tilgeil gus eisgeachdan a làimhseachadh.
  • Mapa lag gus stuthan a chruthachadh a dh'fhaodar a thoirt seachad aig àm cruinneachadh sgudail (mar eisimpleir, gus caches neo-riatanach a stòradh).
  • Comas a’ cleachdadh an abairt “:: class” airson nithean (co-chosmhail ri gairm get_class ()).
  • Comas mìneachaidhean anns a’ bhloc glacaidh de dh’eisgeachdan nach eil ceangailte ri caochladairean.
  • Comas fàgail cromag às deidh an eileamaid mu dheireadh anns an liosta de pharaimearan gnìomh.
  • Eadar-aghaidh ùr Sreangach gus seòrsa sreang no dàta sam bith a chomharrachadh a ghabhas atharrachadh gu sreang (air a bheil an dòigh __toString () ri fhaighinn).
  • Feart ùr str_ anns a bheil (), analogue simplichte de strpos airson a bhith a’ dearbhadh tachartas fo-sreang, a bharrachd air na gnìomhan str_starts_with() agus str_ends_with() airson maidsean a sgrùdadh aig toiseach is deireadh sreang.
  • Feart air a chur ris fdiv(), a bhios a’ coileanadh gnìomhachd roinneadh gun a bhith a’ tilgeil mearachd nuair a thèid a roinn le neoni.
  • Air atharrachadh loidsig ceangail sreang. Mar eisimpleir, tha an abairt 'echo "suim:" . Chaidh $a + $b a mhìneachadh roimhe seo mar 'echo ( "sum: " . $a) + $b', agus ann am PHP 8 thèid a làimhseachadh mar "echo" sum: " . ($a + $b)'.
  • teannadh a’ sgrùdadh gnìomhachd àireamhachd is bit, mar eisimpleir, thig mearachd gu na h-abairtean “[] %[42]” agus “$object + 4”.
  • Air a chur an gnìomh algairim seòrsachaidh seasmhach anns a bheil òrdugh luachan co-ionann air a ghleidheadh ​​​​thar diofar ruith.

Source: fosgailtenet.ru

Cuir beachd ann