Envie de tester PHP 7.4 ? Il y a une image Docker pour ça !

La version 7.4 de PHP est prévue pour la fin de cette année 2019. Elle apportera un certain nombre de nouvelles fonctionnalités dont celle que j'attends avec la plus grande impatience: les propriétés typées. PHP est un langage dont le code source est librement disponible, il est alors possible de tester les nouveautés du langage au fil du développement de ce dernier.

Compiler PHP peut sembler être une tâche complexe et nécessitant d'installer un certain nombre d'outils avec lequel nous (développeurs PHP) ne sommes pas habitués. Pour éviter ce travail et faciliter l'utilisation de la version de développement de PHP, j'ai décidé d'utiliser Docker. En prenant comme base le dépôt des images officielles, j'ai adapté ces dernières afin de compiler la version en cours de développement de PHP.

J'ai rendu ce travail disponible sur Github et les images sont librement accessibles sur le registre officiel de Docker. Ces dernières sont construites (presque) quotidiennement.

Si vous souhaitez commencer à jouer simplement via le mode interactif de la CLI, rien de plus simple:

$ docker run --rm -it phpdaily/php:7.4.0-dev php -a

Si vous souhaitez tester un code existant, ce n'est guère plus compliqué:

$ docker run --rm -it -v "$PWD:/src" -w /src phpdaily/php:7.4.0-dev php script.php

Il se peut que vous souhaitiez tester des fonctionnalités qui ne soient pas actives de base dans les images. C'est par exemple le cas de l'extension FFI (Foreign Function Interface) qui nécessite des options de compilation spécifiques. Pour utiliser cette dernière, les images Docker mettent en place tout le nécessaire pour que vous puissiez facilement l'installer au sein d'une image personnalisée.

# phpdaily/php:7.4.0-dev est une image basée sur Linux Alpine
FROM phpdaily/php:7.4.0-dev

RUN apk add --no-cache --virtual .persistent-deps libffi-dev \
    && docker-php-ext-configure ffi --with-ffi \
    && docker-php-ext-install ffi

Construisez ensuite l'image Docker correspondante au travers de la commande:

$ docker build -t you/php-ffi .

L'extension sera alors utilisable dans les conteneurs qui seront basés sur votre image (vous pouvez vérifier cela en listant les extensions disponibles docker run --rm -it you/php-ffi php -m).

Toutes les images phpdaily/php étant basées sur les images officielles, vous avez accès aux mêmes possibilités d'utilisation et d'extension que sur ces dernières.

C'est maintenant à vous de jouer !