De laatste tijd krijgen we veel vragen over PHP 7.0; de next-generation PHP versie! En ook wat onze plannen zijn met PHP 7.0. In deze blog hopen we een aantal vragen te kunnen beantwoorden.

Over PHP 7.0

PHP 7.0 is gebasseerd op PHPNG (PHP Next-Gen) waarbij de PHP code van nul is herschreven. De makers van PHP vinden dit een dusdanig grote verandering dat ze PHP 6.0 compleet hebben overgeslagen.

Een aantal vernieuwingen die opvallen:

  • Een verdubbeling van de performance bij “Real-world” gebruik (lees: PHP 7.0 en HHVM zijn aan elkaar gewaagd!)
  • Veel “Fatal errors” zijn nu exceptions waardoor foutafhandeling makkelijker wordt in uw applicatie
  • Nieuwe operators waaronder <=>
  • Type hints en scalar types ondersteuning

Ook zullen er zaken zijn die niet meer werken onder PHP 7.0, een aantal voorbeelden:

    • De salt parameter in de password_hash functie
    • Ereg functie
    • De “oude” mysql_* functies. Wij adviseren u om mysqli en PDO_mysql te gebruiken.

Voor een volledig overzicht verwijzen wij u naar de migratie pagina.

Planning

Ons doel is om PHP 7.0 gelijk bij de release (oktober/november) aan te kunnen bieden (als experimentele feature) aan klanten die dit wensen. Van een algemene uitrol zal voorlopig geen sprake zijn. Voorwaarde is wel dat wij onze “Todo”-lijst afgewerkt hebben. Zoals het nu lijkt gaat dit ons lukken!

Status

Op dit moment zijn wij druk bezig om onze build-machine klaar te krijgen zodat deze ook PHP 7.0 packages maakt voor zowel RHEL 6 en RHEL 7. Aangezien onze huidige PHP-installatie een aantal security aanpassingen (patches) bevat, zullen we moeten kijken of deze ook in PHP 7.0 nodig zijn of zijn te komen vervallen.

Naast onze PHP installatie hebben wij ook een paar addiotionele externe modules die wij aan onze klanten aanbieden:

  • php-pecl-gearman
  • php-pecl-igbinary
  • php-pecl-imagick
  • php-pecl-jsonc
  • php-pecl-jsonc-devel
  • php-pecl-memcache
  • php-pecl-memcached (werkend)
  • php-pecl-msgpack (werkend)
  • php-pecl-redis
  • php-pecl-solr2
  • php-pecl-zip (werkend)
  • newrelic for php

Van bovenstaande modules is php-pecl-imagick de belangrijkste. Het kunnen builden van deze module is dan ook cruciaal. Mochten we niet alle modules kunnen builden dan zullen wij deze op een later tijdstip alsnog toevoegen.