Siideynta luuqadda barnaamijka PHP 8.1

Ka dib hal sano oo horumarineed, waxaa la soo bandhigay luuqadda barnaamijka PHP 8.1. Laanta cusub waxaa ku jira taxane cusub oo sifooyin cusub ah, iyo sidoo kale dhowr isbedel oo jebiya iswaafajinta.

Horumarinta muhiimka ah ee PHP 8.1:

  • Taageerada lagu daray ee tirinta, tusaale ahaan, waxaad hadda isticmaali kartaa dhismooyinka soo socda: enum Status { kiis la sugayo; kiis Firfircoon; Kiis Kaydsan; } fasalka Boostada {shaqada guud __construct( Xaaladda gaarka ah $status = Xaaladda :: Sugitaan); {} Hawlaha guud setStatus
  • Taageero lagu daray dunta khafiifka ah ee loo yaqaan 'Fibers', kuwaas oo kuu oggolaanaya inaad maamusho dunta fulinta heer hoose. Taageerada fiber-ka ayaa la qorsheeyay in lagu daro qaabka Amphp iyo ReactPHP. $fiber = Fiber cusub (shaqo (): faaruq ah {$valueAfterResuming = Fiber :: hakinta('ka dib joojinta'); // ... }); $valueAfterSuspending = $fiber->bilaw(); $ fiber-> resume ('ka dib dib u soo celinta');
  • Hirgelinta koodka koodka shayga (opcache) waa la hagaajiyay, taas oo suurtogal ka dhigaysa in la kaydiyo macluumaadka ku saabsan dhaxalka fasalka. Hagaajinta waxay suurtagelisay in la kordhiyo waxqabadka codsiyada qaarkood 5-8%. Hagaajinta kale waxaa ka mid ah hagaajinta hawlgalka JIT, hirgelinta taageerada JIT ee qaab dhismeedka ARM64 (AArch64), dardargelinta xallinta magaca, hagaajinta waqtiga iyo maktabadaha hore/taariikhda, kordhinta taxanaha iyo waxqabadka kala-baxa, hagaajinta get_declared_classes (), qarxi () , strtr() function, strnatcmp(), dechex(). Guud ahaan, waxaa jira 23.0% korodhka waxqabadka Symfony Demo, iyo 3.5% ee WordPress.
  • Hawl-wadeenka wax-ka-soo-saarka ee gudaha hannaan-qaabaynta "...$var", kaas oo u oggolaanaya beddelka shaxanka jira marka la qeexayo shax cusub, ayaa la kordhiyey si uu u taageero furayaasha xargaha (horey uun aqoonsi dhijitaal ah ayaa la taageeray). Tusaale ahaan, waxaad hadda ku isticmaali kartaa koodka: $array1 = ["a" => 1]; $array2 = ["b" => 2]; $array = [β€œa” => 0, …$array1, …$array2]; var_dump ($ array); // ["a" => 1, "b" => 2
  • Waa la ogol yahay in lagu isticmaalo erayga muhiimka ah "cusub" bilowga, sida qeexida shaqada sida halbeegga caadiga ah ama sifooyinka doodaha. fasalka MyController {shaqada guud __construct( gaarka Logger $logger = NullLogger cusub(), ) {}}
  • Waa suurtogal in la calaamadiyo guryaha fasalka si loo akhriyo-kaliya (macluumaadka guryahaas oo kale waxaa la qori karaa hal mar, ka dib markaa lama heli doono isbeddel). fasalka PostData {hawl caam ah __dhis (xarun akhrinta dadweynaha kaliya $ title, public readonly DateTimeImmutable $date, ) {}} $post = Boos cusub ('Title', /* … */); $post->ciwaanka = 'kale'; > Khalad: Ma beddeli karo wax-ka-qabashada hantida Boostada ::$ cinwaan
  • Qalab cusub ayaa loo hirgeliyay walxaha la wici karo - xiritaan hadda waxaa la samayn karaa iyadoo la wacayo shaqo oo loo gudbiyo qiimaha "..." dood ahaan (ie myFunc (...) halkii laga xiri lahaa :: fromCallable ('myFunc) ')): function foo (int $a, int $b) {/* … */} $foo = foo(...); $foo (a: 1, b: 2);
  • Lagu daray taageero buuxda oo loogu talagalay noocyada isgoysyada, taas oo kuu oggolaanaysa inaad abuurto noocyo cusub adoo isku daraya kuwa jira. Si ka duwan noocyada ururka, kuwaas oo qeexaya ururinta laba ama in ka badan, noocyada isgoysyadu waxay u baahan yihiin joogitaanka mid ka mid ah noocyada liiska ah, laakiin dhammaan noocyada la cayimay ee set si loo buuxiyo. function generateSlug(HasTitle&HasId $post) {soo celinta strtolower($post->getTitle()) $post->getId(); }
  • Waxaa jira nooc cusub oo "marna" oo loo isticmaali karo in lagu wargeliyo falanqeeyayaasha joogtada ah in shaqadu ay joojin doonto fulinta barnaamijka, tusaale ahaan adigoo tuuraya wax ka reeban ama fulinta shaqada bixista. function dd (isku darka $ gelin): waligaa {ka bixin; }
  • Array_is_list hawleed cusub ayaa la soo jeediyay, kaas oo kuu ogolaanaya inaad go'aamiso in furayaasha shaxdu ay u habaysan yihiin siday u kordhayaan qiyamka tirada, laga bilaabo 0: $list = ["a", "b", "c"]; array_is_list ($l); // run $notAList = [1 => "a", 2 => "b", 3 => "c"]; array_is_list ($ notAList); // been $alsoNotAList = ["a" => "a", "b" => "b", "c" => "c"]; array_is_list($sidoo kaleNotALIst); // been ah
  • Hadda waxaad isticmaali kartaa erayga muhiimka ah "Final" si aad uga hortagto in fasalada waalidka ee joogtada ah la dhaafiyo. fasalka Foo {ugu dambeeyay dadweynaha X = "foo"; } fasalka Bar wuxuu fidiyaa Foo { public const X = "bar"; Khaladka dilaaga ah: Bar :: X ma baabi'in karo Foo:: X }
  • Hawlaha fsync iyo fdatasync ayaa la soo jeediyay in lagu qasbo isbeddelada in laga badbaadiyo kaydka diskka. $ file = fopen ("sample.txt", "w"); fwrite ($ file, "Waxyaabaha qaar"); haddii (fsync ($ file)) { echo "Faylka si guul leh ayaa loogu sii wadaa saxanka."; } fclose ($ file);
  • Waxaa lagu daray awoodda isticmaalka horgalayaasha "0o" iyo "0O" ee tirooyinka octal, marka lagu daro horgalayaasha hore ee "0". 016 === 0o16; // run 016 === 0O16; // run
  • Waxaa la soo jeediyay in si xushmad leh loo xaddido isticmaalka $GLOBALS, taasoo horseedi doonta ku xad-gudubka is-waafajinta dib-u-dhaca, laakiin waxay suurtogal ka dhigi doontaa in si weyn loo dedejiyo hawlgallada qalabaynta. Tusaale ahaan, suurtogalnimada in la joojiyo qoraalka $GLOBALS oo lagu gudbiyo $GLOBALS tilmaame ayaa la tixgelinayaa. Falanqaynta xirmooyinka 2000 ayaa muujisay in 23 ka mid ah oo kaliya ay saameyn doonto isbeddelkan. Tusaale ahaan, haddii soo jeedinta la oggolaado, 8.1 ma taageeri doono tibaaxaha sida: $GLOBALS = []; $GLOBALS += []; $GLOBALS = & $ x; $x =& $GLOBALS; aan dejin($ CAALAMKA); by_ref($GLOBALS);
  • Hababka guduhu hadda waa inay soo celiyaan nooca saxda ah. PHP 8.1, soo celinta nooc aan ku haboonayn cadeynta shaqada waxay soo saari doontaa digniin, laakiin PHP 9.0 digniinta waxaa lagu bedeli doonaa qalad.
  • Shaqadu waxay sii socotay ka wareejinta hawlaha isticmaalka agabka ilaa wax-is-dabamarinta walxaha. Hawlaha finfo_* iyo imap_* waxa loo wareejiyay walxo.
  • Gudbitaanka qiyamka aan waxba jirin sida doodaha shaqooyinka gudaha ee lagu calaamadiyay kuwa aan waxba ka jirin ayaa meesha laga saaray. PHP 8.1, adeegsiga dhismooyinka sida str_contains("xadhig", null) waxay u horseedi doontaa digniin, iyo gudaha PHP 9 qalad.
  • Taageero lagu daray MurmurHash3 iyo xxHash hashing algorithms.

Source: opennet.ru

Add a comment