Incoming: PHP 5.4

  • 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
    <?php
    
    
    function typeHinting(MyClass $myClass, SomeClass $someClass, array $array) {
    	...
    }
    
    
    ?>


    PHP 5.4 voegt daar nu de volgende functionaliteit aan toe:

    PHP
    <?php
    
    
    function typeHintingCallback(callable $callbackFunction) {
    	...
    }
    
    
    ?>


    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:


    PHP
    <?php
    
    
    $newArray = [ 1, 6, 12, 19 ];
    
    
    ?>


    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?

  • Mooie tekst, heel duidelijk!


    Persoonlijk vind ik dat ze veel dingen hebben toegevoegd voor de pro-programmeurs die werken met PHP.
    Traits, singletons, type hinting die callback ondersteunt, ...
    Kortom: vooral veel uitbreidingen voor mensen die zeer geavanceerde applicaties ermee willen maken.


    De short open tag <?= is wel handig en dat er een onboard http server in zit, zal ook zeker de taal ten goede komen.
    Tenminste, als het niet nog meer verwarrend is.
    De wamp en lamp's die nu op de markt zijn, zijn immers allemaal met oudere versies of met problemen en sommige corner cases...

  • PHP 5.3 zorgt voor zeer veel problemen met iets oudere Magento webshops. Daarnaast draaien we nogal wat custom configuraties op onze servers, waardoor het testen alleen al weken zou duren.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!