Ka filluar testimi alfa i PHP 8.1.

U prezantua alfa e parë e degës së re të gjuhës së programimit PHP 8.1. Lëshimi është planifikuar për 25 nëntor. Një numër risish, që janë tashmë të disponueshme për testim ose planifikohen për t'u realizuar në PHP 8.1:

  • Shtohet mbĂ«shtetje pĂ«r enumeracione, pĂ«r shembull, tani mund tĂ« pĂ«rdoren strukturat nĂ« vijim: enum Status { case Pending; case Active; case Archived; } class Post { public function __construct( private Status $status = Status::Pending; ) {} public function setStatus(Status $status): void { // 
 } } $post->setStatus(Status::Active);
  • Shtohet mbĂ«shtetje pĂ«r fibra tĂ« lehta tĂ« quajtura Fibers, qĂ« lejojnĂ« menaxhimin e paralelizmit nĂ« nivel tĂ« ulĂ«t. MbĂ«shtetje pĂ«r fibra pritet tĂ« shtohet nĂ« strukturat Amphp dhe ReactPHP. $fiber = new Fiber(function (): void { $valueAfterResuming = Fiber::suspend(‘after suspending’); // 
 }); $valueAfterSuspending = $fiber->start(); $fiber->resume(‘after resuming’);
  • ËshtĂ« pĂ«rmirĂ«suar implementimi i cache-it tĂ« kodit tĂ« objektit (opcache), i cili tani ofron mundĂ«sinĂ« e caching-ut tĂ« informacionit mbi trashĂ«giminĂ« e klasave. Optimizimi ka lejuar rritjen e performancĂ«s sĂ« disa aplikacioneve me 5-8%.
  • Operatori i zgjidhjes brenda array-eve ‘
$var’, qĂ« lejon zĂ«vendĂ«simin e array-ve ekzistues gjatĂ« definimit tĂ« njĂ« array tĂ« ri, Ă«shtĂ« zgjeruar me mbĂ«shtetje pĂ«r çelĂ«sat string (mĂ« parĂ« mbĂ«shteteshin vetĂ«m identifikuesit numerikĂ«). PĂ«r shembull, tani mund tĂ« pĂ«rdoren nĂ« kod: $array1 = [‘a’ => 1]; $array2 = [‘b’ => 2]; $array = [‘a’ => 0, 
$array1, 
$array2]; var_dump($array); // [‘a’ => 1, ‘b’ => 2]
  • Ka njĂ« tip tĂ« ri ‘never’, i cili mund tĂ« pĂ«rdoret pĂ«r t'i informuar analizuesit statikĂ« se njĂ« funksion ndĂ«rpritet ekzekutimin e programit, pĂ«r shembull, duke thirrur njĂ« pĂ«rjashtim ose duke ekzekutuar funksionin exit. function dd(mixed $input): never { exit; }
  • Propozohet njĂ« funksion i ri array_is_list, i cili lejon tĂ« pĂ«rcaktohet nĂ«se çelĂ«sat nĂ« njĂ« array janĂ« tĂ« rreshtuar nĂ« rendin nĂ« rritje tĂ« vlerave numerike, duke filluar nga 0: $list = [‘a’, ‘b’, ‘c’]; array_is_list($list); // true $notAList = [1 => ‘a’, 2 => ‘b’, 3 => ‘c’]; array_is_list($notAList); // false $alsoNotAList = [‘a’ => ‘a’, ‘b’ => ‘b’, ‘c’ => ‘c’]; array_is_list($alsoNotAList); // false
  • Ofrohet mundĂ«sia e tejkalimit tĂ« konstantave brenda klasĂ«s gjatĂ« procesit tĂ« trashĂ«gimisĂ«. PĂ«r tĂ« ndaluar tejkalimin e konstantave tĂ« klasĂ«s prind, mund tĂ« pĂ«rdoret fjalĂ«kalimi «final». class Foo { public const X = «foo»; final public const Z = «foo»; } class Bar extends Foo { public const X = «bar»; }
  • Funksionet fsync dhe fdatasync janĂ« propozuar pĂ«r tĂ« ruajtur me forcĂ« ndryshimet nga cache e diskut. $file = fopen(«sample.txt», «w»); fwrite($file, «Disa pĂ«rmbajtje»); if (fsync($file)) { echo «Skedari Ă«shtĂ« ruajtur me sukses nĂ« disk.»; } fclose($file);
  • ËshtĂ« shtuar mundĂ«sia e pĂ«rdorimit tĂ« parafjalave «0o» dhe «0O» pĂ«r numrat oktal, pĂ«rveç parafjalĂ«s «0» qĂ« ishte pĂ«rdorur mĂ« parĂ«. 016 === 0o16; // true 016 === 0O16; // true
  • Propozohet qĂ« tĂ« kufizohet pĂ«rdorimi i $GLOBALS nĂ« mĂ«nyrĂ« selektive, qĂ« do tĂ« çojĂ« nĂ« shkelje tĂ« pĂ«rputhshmĂ«risĂ« prapa, por do tĂ« mundĂ«sojĂ« ndjeshĂ«m pĂ«rshpejtimin e operacioneve me array. PĂ«r shembull, po diskutohet mundĂ«sia e ndalimit tĂ« shkrimit nĂ« $GLOBALS dhe kalimi i $GLOBALS pĂ«rmes njĂ« pointer. Analiza e 2000 paketave tregoi se vetĂ«m 23 prej tyre do tĂ« preken nga ky ndryshim. PĂ«r shembull, nĂ« rastin e miratimit tĂ« propozimit nĂ« 8.1 do tĂ« ndĂ«rpritet mbĂ«shtetje pĂ«r shprehje tĂ« tilla si: $GLOBALS = []; $GLOBALS += []; $GLOBALS =& $x; $x =& $GLOBALS; unset($GLOBALS); by_ref($GLOBALS);
  • Puna vazhdon pĂ«r tĂ« transferuar funksionet nga pĂ«rdorimi i burimeve nĂ« manipulimin e objekteve. Funksionet finfo_* dhe imap_* janĂ« transferuar nĂ« objekte.
  • ËshtĂ« shpallur e papĂ«rdorshme kalimi i vlerave null si argumento nĂ« funksionet e brendshme tĂ« cilat janĂ« markuar si non-nullable. NĂ« PHP 8.1 pĂ«rdorimi i ndĂ«rtimit tĂ« tillĂ« si str_contains(«string», null) do tĂ« çojĂ« nĂ« njĂ« paralajmĂ«rim, ndĂ«rsa nĂ« PHP 9 do tĂ« rezultojĂ« nĂ« njĂ« gabim.
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r algoritmet e hash-it MurmurHash3 dhe xxHash.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster