PHP blijft evolueren. Versie 8.3, uitgebracht in november 2023, voegt een reeks handige features toe die de dagelijkse developer experience verbeteren. Geen revolutie, maar solide verbeteringen die je code cleaner maken.

Typed class constants

Eindelijk kunnen class constants een type krijgen:

class Status {
    const string ACTIVE = 'active';
    const int MAX_RETRIES = 3;
}

Dit verhoogt de type-veiligheid en maakt je code zelfdocumenterend. Voorheen moest je vertrouwen op commentaar of PHPDoc.

Verbeterde readonly properties

In PHP 8.2 kwamen readonly classes, maar je kon properties nog niet opnieuw initialiseren bij kloning. PHP 8.3 lost dit op:

$user = new User(name: 'Yolan');
$updated = clone $user;
$updated->name = 'Jan'; // Werkt nu in PHP 8.3

Dit maakt immutable value objects een stuk aangenamer om mee te werken.

json_validate()

Een kleine maar welkome toevoeging: json_validate() controleert of een string geldige JSON is zonder ze te parsen. Sneller dan json_decode() met een null-check.

if (json_validate($input)) {
    $data = json_decode($input, true);
}

Dynamische class constant fetch

Je kan nu dynamisch class constants opvragen:

$const = 'MAX_SIZE';
echo MyClass::{$const}; // Werkt in PHP 8.3

Handig voor generieke code die met meerdere classes werkt.

Performance

PHP 8.3 brengt ook optickets JIT-verbeteringen. In benchmarks zie je 5-10% winst op typische webapplicatiecode. Niet spectaculair, maar gratis en cumulatief met eerdere 8.x verbeteringen.

Upgraden?

Meeste moderne frameworks, waaronder Laravel, ondersteunen PHP 8.3 volledig. Bij Meesy draaien nieuwe projecten standaard op de meest recente stabiele PHP-versie.

PHP 8.3 is een goede upgrade voor wie nog op 8.1 of 8.2 zit. Controleer je extensies en dependencies via composer outdated, en test op een staging-omgeving.

Conclusie

PHP 8.3 is een volwassen release die de taal verder versterkt. Typed constants, betere readonly-ondersteuning en json_validate() zijn direct bruikbaar in Laravel ontwikkeling en andere maatwerk applicaties. Upgraden loont.

Heb je vragen over dit onderwerp of wil je samenwerken?

Neem contact op