PHP 8.3 lander til november – her er det nye

Author Thumb
PHP 8.3

En ny opdatering til PHP er på vej

Du har måske allerede opgraderet til PHP 8.2 og nyder allerede de nyeste funktioner såsom readonly classes og de nye Randomizer funktioner. Du nyder nok også at PHP er blevet meget hurtigere. Version 8.3 har lige ramt beta og forventes lanceret ultimo november, hvor du får endnu flere fede Randomizer funktioner, bedre typingsystem og JSON valideringsfunktioner.

PHP har, ligesom JavaScript, ofte fået kritik for at have et meget løst typesystem, hvor alting kan være alting. Derfor har PHP siden version 8.0 arbejdet hårdt på at indføre en masse funktioner og muligheder til deres type-system, der gør det muligt at bruge stærke typer i dit PHP-program. Det smarte ved disse opgraderinger til typesystemet er at de er valgfrie, og du kan frit tilvælge dem der hvor du har brug for dem. Det er altså ikke ligesom andre programeringssprog, som f.eks. C# og Java hvor du altid skal bruge stærke typer.

Bedre typesikkerhed, Randomizer funktioner og bedre fejlforudsigelser

Med PHP 8.2 blev den nye Randomizer classe tilføjet og i PHP 8.3 får den endnu flere funktioner. Det giver dig mulighed for at generere tilfældige værdier, som du kan bruge til f.eks. sikkerhed når du skal oprette og gemme adgangskode eller når du skal auto-generere et ID til en række i databasen.

Hvis du gemmer data i databasen, er det ofte rart at kunne se hvornår denne data er blevet oprettet. Du laver måske en ny `DateTime()` som gemmes i databasen. Men hvis denne værdi er readonly og du kopierer denne række, hvordan sikrer du dig så at du får en ny værdi. I PHP 8.3 kan man i magic metoden `__clone` faktisk overskrive readonly properties specifikt for at løse dette problem.

`Randomizer` klassen som blev introduceret i PHP 8.2, har nu fået endnu flere funktioner. Der tilføjes tre nye funktioner kaldet henholdvis `getBytesFromString`, `getFloat` og `nextFloat`. Disse kan du bruge hvis du skal generere nogle tilfældige værdier til brug i f.eks. sikkerhed eller eller ved auto-generering af ID’er til din database.

Endnu ting der er hver at se på er tilføjelsen af den nye `json_validate` funktion. Førhen når du havde JSON data og du skulle validere om det var valid JSON syntax, skulle du bruge `json_parse` funktionen. Udfordringen med denne funktion er at hvis du ikke skal bruge data, men kun vil validere, så bruger du unødvendige ressourcer på dette. Med `json_validate` får du en boolean der fortæller om dit JSON er korrekt. Du kan også definere hvor dybt funktionen skal validere, så du på den måde kan optimere valideringen og kun validere det du mener er nok.

Er PHP 8.3 hurtigere og hvornår kan jeg opgradere?

En benchmark fra OnlinePHP.io viser at PHP 8.3 ikke er betydeligt hurtigere end 8.2, så du behøver ikke opgradere for hastighedens skyld. Det er dog værd at nævne, at hvis du opdaterer jævnligt, så undgår én stor opdatering med stor risiko for flere ting kan gå i stykker på en gang.

Ifølge denne blogpost på php.net, forventes PHP 8.3 at blive frigivet 23. november, men du kan allerede nu prøve både betaen og release candidates på php.net.