Op 30 juni 2009 kwam PHP 5.3 uit, alweer even geleden dus. Het lijkt dus tijd voor een nieuwe major release, en deze zit er dan ook aan te komen. De beta versie van PHP 5.4 is namelijk uit, en deze laat mooi zien wat ons te wachten staat.
PHP 5.3 bracht met namespaces en closures nuttige extra functionaliteit naar PHP, maar ook PHP 5.4 is niet misselijk. Hieronder een lijst met de meest interessante wijzigingen in PHP. De lijst is nog niet definitief, het gaat tenslotte om een beta release, en de final release kan natuurlijk nog functionaliteiten uitsluiten.
Nieuwe functionaliteit: Traits
In steeds meer programmeertalen zie je ze terugkomen: Traits. Traits zijn te vergelijken met interfaces, maar dan met functionaliteit. Dit lost het probleem met multiple inheritance (erven van meerderen) van abstracte classes op. Het is niet mogelijk om van meerdere abstracte classes te erven. In sommige gevallen wil je dit echter wel: Bijvoorbeeld als je de functionaliteit van een ArrayObject wilt overnemen, maar de class ook wilt laten erven van Singleton. Dit is nu op te lossen door middel van traits: Je zou een trait Singleton hiervoor kunnen introduceren.
php.net heeft hier al een artikel over in de manual: http://nl.php.net/manual/en/language.oop5.traits.php
magic qoutes functionaliteit verdwijnt
In PHP 5.3 is magic qoutes deprecated, en in PHP 5.4 bestaat deze functionaliteit dan ook niet meer. Dit betekent voor bestaande applicaties die nog afhankelijk zijn van magic qoutes dat ze niet kunnen overstappen naar PHP 5.4. Mocht je niet op de hoogte zijn waarom de magic qoutes functionaliteit verwijderd wordt, zie de onderstaande link.
http://nl3.php.net/manual/en/security.magicquotes.whynot.php
Type hinting op function callbacks
PHP kent een verkapte vorm van type hinting. Type hinting is nu mogelijk voor arrays en objecten, maar niet voor primitieve types of callbacks. Voor primitieve types zal dit zo blijven, maar callbacks kunnen in PHP 5.4 wel worden verwacht als argument door middel van de callable type hint.
Type hinting in PHP 5.3:
PHP 5.4 voegt daar nu de volgende functionaliteit aan toe:
Array shortcuts
Er komt een nieuwe syntax om arrays te initialiseren. De meesten zullen de syntax wel kennen uit Javascript: het aanmaken van array doormiddel van blokhaken ([]).
Dit zal er dan ook als volgt uit gaan zien:
Build-in webserver
Er zal aan PHP een mini webserver worden toegevoegd voor testdoeleinden. Het is dan dus niet meer nodig om Apache te installeren om je PHP scripts te testen. PHP krijgt zijn eigen HTTP server aan boord.
De <?= notatie behoord niet meer tot de short open tags
De <?= notatie zal nu altijd beschikbaar zijn, of short open tags nu aanstaat of niet.
$this zal nu beschikbaar zijn in closures
Als je tegen deze limitatie van PHP 5.3 bent aangelopen zul je hier ongetwijfeld volledig achter staan. Het is nu mogelijk $this te gebruiken binnen closures (die in een methode worden gedefinieerd).
Tot slot
Een heuse lijst met mooie wijzigen, en hij is nog niet eens compleet. Jullie zijn vrij hem aan te vullen. Voor een volledige lijst van wijzigingen, zie de onderstaande link.
http://www.php.net/releases/NEWS_5_4_0_beta1.txt
Wat vinden jullie van deze wijzingen? Gaan jullie PHP 5.4b uitproberen? En wanneer gaan jullie overstappen als PHP 5.4 beschikbaar is?