Laravel

PIE 1.5 : ce qui change pour installer vos extensions PHP en CI

Roger Gnanih 05 novembre 2026 3 min de lecture 5 vues
PIE 1.5 : ce qui change pour installer vos extensions PHP en CI

PIE (PHP Installer for Extensions) gère les extensions de votre environnement PHP. La version 1.5 apporte des commandes utiles, mais aussi un changement qui peut casser un pipeline : l'option qui sélectionnait automatiquement les paquets lors d'une installation non interactive ne fait plus rien.

Le changement qui peut casser votre CI

Prenons une application Laravel qui utilise PhpRedis et le déclare dans composer.json :

{
    "require": {
        "ext-redis": "*"
    },
    "require-dev": {
        "ext-xdebug": "*"
    }
}

L'entrée ext-redis déclare un besoin pour le runtime PHP : elle n'installe pas PhpRedis. Quand vous lancez pie install sans argument dans le dossier du projet, PIE examine les extensions requises. Avant, l'option --allow-non-interactive-project-install choisissait les paquets toute seule. En 1.5, elle est dépréciée et ignorée : une extension manquante sans choix explicite fait échouer l'installation non interactive.

La nouvelle façon de faire : --select

Pour un build de production de l'exemple ci-dessus :

pie install --no-interaction --no-dev \
    --select=redis=phpredis/phpredis

À gauche, le nom de l'extension sans ext- ; à droite, le nom du paquet. PIE vérifie si Redis est déjà disponible et installe le paquet choisi sinon. Ajoutez un --select par extension manquante qui demande un choix. Une commande qui nomme déjà son paquet, comme pie install phpredis/phpredis, n'est pas concernée.

Garder les extensions de développement hors de la production

Sans --no-dev, PIE vérifie aussi les extensions listées dans require-dev, ici Xdebug. Avec cette option, la vérification les ignore. Attention : elle ne désinstalle rien et ne remplace pas composer install --no-dev pour vos paquets PHP.

Pour un environnement de développement qui a besoin des deux extensions :

pie install --no-interaction \
    --select=redis=phpredis/phpredis \
    --select=xdebug=xdebug/xdebug

En mode non interactif, PIE n'installe pas automatiquement les outils de compilation manquants. La nouvelle commande pie check-build-tools permet de vérifier l'environnement avant d'installer.

pie upgrade : mettre à jour les extensions

PIE 1.5 ajoute pie upgrade, qui met à jour les extensions installées avec PIE sur l'installation PHP visée, en respectant les contraintes de version enregistrées à l'installation. Elle ne met pas à jour Laravel ni le dossier vendor.

pie install 'phpredis/phpredis:^6.0'

Les pie upgrade suivants installeront les versions 6.x compatibles. Passer en 7.x demande de changer la contrainte. Les options de configuration sont conservées d'une mise à jour à l'autre.

Autres ajouts

Pour les images Docker qui nomment directement leurs extensions, PIE accepte maintenant plusieurs paquets dans une seule commande :

pie install phpredis/phpredis xdebug/xdebug

La commande pie search aide à trouver le nom d'un paquet avant d'écrire ces lignes, et la bibliothèque de vérification des attestations a été mise à jour. Les notes de version détaillent le reste.

Que faire maintenant ?

  • Cherchez dans vos Dockerfile et pipelines l'option --allow-non-interactive-project-install et remplacez-la par un ou plusieurs --select.
  • Ajoutez --no-dev à vos builds de production.
  • Fixez la version de PIE dans vos images tant que vous n'avez pas testé la 1.5.
  • Testez pie check-build-tools dans votre image de build.

Source : Laravel News

Écrit par Roger Gnanih

Ingénieur fullstack & analyste cybersécurité. Je partage ce que j'apprends en construisant des produits.

En savoir plus

Cet article vous a plu ?

Recevez les prochains directement par email : dev, IA & cybersécurité.

Commentaires (0)

Laisser un commentaire

Ne sera pas publié
0 / 2000 caractères

Soyez le premier à commenter cet article !

Discutons sur WhatsApp

Planifier un appel stratégique

Échangeons 15 à 30 minutes sur vos enjeux, votre architecture logicielle ou la sécurité de votre système.