A început testarea alfa a PHP 8.2.

A fost lansată prima versiune alpha a noului ramură a limbajului de programare PHP 8.2. Lansarea este programată pentru 24 noiembrie. Cele mai importante noutăți, deja disponibile pentru testare sau planificate pentru implementare în PHP 8.2:

  • Au fost adăugate tipuri separate de „false” și „null”, care pot fi utilizate, de exemplu, pentru a returna o funcție de semnalare a încheierii cu eroare sau a unei valori nule. Anterior, „false” și „null” puteau fi utilizate doar împreună cu alte tipuri (de exemplu, „string|false”), iar acum pot fi aplicate separat: function alwaysFalse(): false { return false; }
  • A fost adăugată posibilitatea de a marca o clasă ca fiind accesibilă doar în citire. Proprietățile din astfel de clase pot fi setate doar o dată, după care nu vor putea fi modificate. Anterior, doar proprietățile individuale ale clasei puteau fi marcate ca fiind doar în citire, iar acum se poate activa acest mod pentru toate proprietățile clasei. Specificarea flagului „readonly” la nivelul clasei blochează de asemenea adăugarea dinamică de proprietăți în clasă. readonly class Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post(/* … */); $post->unknown = ‘wrong’; // Eroare: Nu se pot crea proprietăți dinamice Post::$unknown
  • A fost declarată ca fiind învechită posibilitatea de a crea dinamic proprietăți în clasă (precum „post->unknown” în exemplul de mai sus). În PHP 9.0, accesul la proprietățile care nu sunt definite inițial în clasă va genera o eroare (ErrorException). Clasele care oferă metode __get și __set pentru a crea proprietăți sau proprietățile dinamice în stdClass vor continua să funcționeze fără modificări, suportul pentru accesarea implicită a proprietăților inexistente fiind încheiat pentru a proteja dezvoltatorul de erori ascunse. Pentru a menține funcționarea codului vechi, a fost propus atributul „#[AllowDynamicProperties]”, care permite utilizarea proprietăților dinamice.
  • S-a oferit posibilitatea de a filtra parametrii confidențiali din datele stivei de apel, afișate în timpul erorilor. Excluderea anumitor informații poate fi necesară atunci când detaliile erorilor sunt trimise automat către servicii externe care monitorizează problemele și informează dezvoltatorii despre acestea. De exemplu, pot fi excluși din stivă parametrii care includ nume de utilizatori, parole și variabile de mediu. function test( $foo, #[\SensitiveParameter] $password, $baz ) { throw new Exception(‘Error’); } test(‘foo’, ‘password’, ‘baz’); Eroare fatală: Excepție necontrolată: Error în test.php:8 Stiva de apeluri: #0 test.php(11): test(‘foo’, Object(SensitiveParameterValue), ‘baz’) #1 {main} aruncată în test.php la linia 8
  • A fost declarat ca fiind învechită posibilitatea de a înlocui valorile variabilelor în șiruri folosind expresiile «${var}» și ${(var)}». Suportul pentru înlocuirile folosite frecvent «{$var}» și «$var» este păstrat. De exemplu: «Hello {$world}»; OK «Hello $world»; OK «Hello ${world}»; Învechit: Utilizarea ${} în șiruri este învechită
  • Au fost declarate învechite obiectele apelabile parțial suportate (callable) care pot fi apelate prin «call_user_func($callable)», dar nu suportă apelul sub formă de «$callable()»: «self::method» «parent::method» «static::method» [«self», «method»] [«parent», «method»] [«static», «method»] [«Foo», «Bar::method»] [new Foo, «Bar::method»]
  • A fost implementată o conversie a literelor independentă de locală. Funcțiile, precum strtolower() și strtoupper(), transformă acum întotdeauna literele din intervalul ASCII ca și cum ar fi setată locală «C».

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster