De komst van PHP 8 (en wat dit betekent voor website eigenaren en developers)

Development

PHP is de programmeertaal die door veel websites gebruikt wordt en PHP 8 biedt veel nieuwe functies en verbeteringen. Zoals omschreven in het blog development trends in 2021 werd PHP 8 afgelopen november gereleased. Na de komst van PHP 7 in 2015 is dit de eerste major update in bijna 5 jaar. 

Een noemenswaardig moment, omdat bijna 80% van alle websites (waarvan de taal bekend is) op PHP draait. Zo ook vrijwel alle platformen die Exitable bouwt op basis van onder andere Drupal, Craft CMS, Shopware en Laravel.

Wat betekent dit voor jou, als eigenaar van een website of webapplicatie?

Op dit moment (mei 2021) is nog niet alle software compatibel met PHP 8, maar onder andere Laravel (6, 7 en 8) en Drupal (vanaf 9.1) wél.

Security fixes voor PHP 7.4 worden tot eind 2022 uitgebracht. Ons dringende advies is om vóór die tijd al je platformen te (laten) updaten naar PHP 8.

Dit omdat de laatste versie van PHP 7 (PHP 7.4) nog actief wordt ondersteund tot 28 november 2021. "Reported bugs and security issues" binnen PHP worden tot dan dus opgelost. 

Daarna stopt PHP met het oplossen van bugs, maar "critical security issues" worden wel nog opgelost tot 28 november 2022.

Na 28 november 2022 bereikt PHP 7 (7.4) zijn “End of Life”. Dat betekent dat het dan helemaal niet meer ondersteund wordt. Een website die op PHP 7 draait kan die na verloop van tijd dus potentieel onveilig zijn, als er "lekken" binnen PHP 7 gevonden worden die niet meer worden opgelost.

Daarnaast zal PHP 7 dus ook niet meer actief doorontwikkeld worden. Dus de voornaamste reden om (uiteindelijk) over te stappen is toch vooral de "support" van PHP die na verloop van tijd gaat stoppen. 

Hoewel PHP 8 ervoor kan zorgen dat een website iets sneller is (altijd positief voor de autoriteit van je website en voor de ervaring van de bezoeker), is het verschil miniem. Je zult het zelf dus niet echt merken of er nou PHP 7 of PHP 8 achter de website zit - tenzij je een developer bent die actief met de taal werkt. Dan zijn de verschillen toch echt best groot. 

Wat betekent dit voor jou, als developer?

In het kort wordt het leven van ons als developers weer een stukje makkelijker met de komst van PHP 8. Want waar ik als developer blij van word, is het schrijven van leesbare en efficiënte code. Met zo weinig mogelijk code zo veel mogelijk gedaan krijgen. De komst van PHP 8 levert daar zeker een bijdrage aan. Hieronder staan enkele nieuwe features die mij zeker kunnen bekoren, met codevoorbeelden uit enkele van “onze” platformen.

Named arguments 

Wanneer je bijvoorbeeld alleen de eerste en derde parameter aan een method wilt meegeven, kun je de (optionele) tweede parameter overslaan. Dit doe je door de naam van de derde parameter in de aanroep toe te voegen. Voor meer informatie kun je kijken op op de officiële website van PHP.

Method:method

PHP 7:php7

PHP 8:php8

Match expression

Wanneer je een switch gebruikt om een waarde te returnen of in een variabele op te slaan, kan dat vanaf PHP 8 met de match expression. Dat is een stuk compacter. Bijkomend voordeel is dat match een strict comparison doet.

PHP 7:php7

PHP 8:php8

Union types

Wanneer je een method schrijft met een parameter waarvoor meerdere typen “geldig” zijn kun je die in PHP 7 wel benoemen, maar niet meteen valideren. Een mogelijkheid is het afvangen van het type met functies als is_array() en is_string() en op basis daarvan de afhandeling van de method al dan niet stoppen.

Union types binnen PHP 8 brengen daar verandering in. Voor een parameter ($value in onderstaand voorbeeld) kun je nu meerdere geldige typen definiëren. Alle andere typen resultaten in een TypeError.

PHP 7:php7

PHP 8:php8

Meer nieuwe features

En zo zijn er nog meer nieuwe features en optimalisaties die je helpen bij het schrijven van efficiëntere code, dus hetzelfde kunnen bouwen met minder regels code. Daardoor wordt de code ook overzichtelijker. Een overzicht van die features en nog meer codevoorbeelden vind je op de PHP website.

Achter de schermen wordt ook al hard gewerkt aan de eerste minor update, oftewel PHP 8.1. Die wordt verwacht op 25 november 2021, maar één van de features waar wij nu al heel enthousiast van worden is de toevoeging van enums. Meer nieuwe features, zoals de toevoeging van fibers vind je hier.

Benieuwd?

Ben je door het lezen van dit blog benieuwd geworden naar welke technische kennis we nog meer in huis hebben? Bekijk dan eens dit artikel, hierin vertel ik meer over de development trends van 2021. Of bel of mail me!

Excited?

Ons eerste gesprek is sowieso vrijblijvend - en we garanderen dat je op z’n minst met flink wat inspiratie op zak wegloopt. Zin in koffie?