Alpha-testningen af PHP 8.4 er begyndt

Den første alpha-udgave af den nye version af programmeringssproget PHP 8.4 er blevet præsenteret. Udgivelsen er planlagt til den 21. november. De vigtigste nye funktioner, der allerede er tilgængelige til testning eller planlagt til implementering i PHP 8.4:

  • Støtten til tilknytning af properties hooks er blevet tilføjet, hvilket gør det muligt at tilføje ekstra logik, der udføres ved ændringer eller adgang til objektets egenskaber, uden at indfange læse- og skriveoperationer ved hjælp af de almindelige funktioner __get og __set, og uden at skabe ekstra wrapper-metoder. Brug af properties hooks giver mulighed for betydeligt at reducere mængden af kode og forenkle overstyringen af adfærden med hensyn til egenskaber ved at binde en brugerdefineret handler til hver egenskab. class User { public string $name { set { if (strlen($value) === 0) { throw new ValueError("Navn skal være ikke-tomt"); } $this->name = $value; } } public function __construct(string $name) { $this->name = $name; } }
  • Det er tilladt at angive henvisninger til metoder i "new" konstruktionen uden adskillelsesparenteser, dvs. i stedet for "$name = (new MyClass())->method()" kan man nu angive "$name = new MyClass()->method()".
  • I stedet for den generelle parameter "opcache.jit_buffer_size" til styring af JIT-kompileren og indstilling af JIT-bufferstørrelsen er der nu foreslået parametre "opcache.jit" og "opcache.jit_buffer_size". For at deaktivere JIT kan man nu angive "opcache.jit=disable" i stedet for "opcache.jit_buffer_size=0". Desuden er der foretaget ændringer, der reducerer hukommelsesforbruget og øger ydeevnen for JIT i visse situationer.
  • Adfærden, hvor parameterne i funktioner med standardværdi null automatisk tillod tildeling af værdier null, er blevet erklæret forældet. For at sådanne parametre kan acceptere værdier null kræves nu en eksplicit angivelse af præfikset "?". For eksempel, i stedet for "function save(Book $book = null) {}" bør man angive "function save(?Book $book = null) {}".
  • Klassen \Dom\HTMLDocument er implementeret og understøtter korrekt parsing af HTML5 markup.
  • Funktionen request_parse_body() er tilføjet til at parse HTTP-anmodninger med indholdstypen multipart/form-data (RFC1867).

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster