Plusieurs versions de PHP avec Symfony

Installations des PHPs

Structures des fichiers

Dans cet exemple j'ai créé un répértoire c:\programmes\php

Dans ce répértoire je copie les differentes versions de PHP, dans cet exemple : php-5.6.5 et php-7.3.6. Téléchargeable ici

Pour les fichiers php.cmd, php7.cmd et php5.cmd, nous les verrons plus bas…

Modification du PATH (Windows)

Comment modifier le PATH Windows ???

On rajoute les Paths de PHP et de ses différentes versions.

Si les Paths de toutes les versions ne sont pas déclarées, les versions ne seront pas visibles dans la commande symfony local:php:list

Modification des php.ini

Les fichiers php.ini de chaque version doivent etre modifier.

La valeur extension_dir doit pointer sur le répértoire des extensions propres a chaques versions… Exemple :

Files\php\php-5.6.5\php.ini
extension_dir = "C:\Program Files\php\php-5.6.5\ext"
Files\php\php-7.3.6\php.ini
extension_dir = "C:\Program Files\php\php-7.3.6\ext"

Les fichier .cmd

J'ai créé 3 fichiers .cmd

php7.cmd

php7.cmd servira à lancer PHP 7

C:\Program Files\php\php7.cmd
@echo off
"C:\Program Files\php\php-7.3.6\php.exe" %*

php5.cmd

php5.cmd servira à lancer PHP 5

C:\Program Files\php\php5.cmd
@echo off
"C:\Program Files\php\php-5.6.5\php.exe" %*

php.cmd

php.cmd servira d'aiguillage pour le systéme, c'est lui qui dira si il faut executer PHP 7 ou 5.
En modifiant la ligne php7 %*

C:\Program Files\php\php.cmd
@echo off
REM changer la ligne ci-dessous php7 ou php5
php7 %*

Tests

Donc suite a la modification du PATH (et redémarrage) quand on tape php on exécute php.cmd

Voila ce que l'on obtiens en changeant le fichier php.cmd

Dans Symfony

Lister les versions de PHP

Avec la commande symfony local:php:list

Dans ce tableau on voit que Symfony utilise la version 7.3.6 et que le systéme aussi utilise la méme version.

Le fichier .php-version

On peut créer un fichier .php-version dans le répertoire de notre projet.
Ce fichier contiendra la version de PHP que l'on veut utiliser avec Symfony.

.php-version
5.6.5

Maintenant un symfony local:php:list nous donne :

Version utilisée par Symfony = 5.6.5
Version utilisée par le systéme = 7.3.6

Tests

Avec symfony php -v (Symfony)

D:\webprojects\frontend-app>symfony php -v
PHP 5.6.5 (cli) (built: Jan 21 2015 16:30:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies

Avec php -v (Systéme)

D:\webprojects\frontend-app>php -v
PHP 7.3.6 (cli) (built: May 29 2019 12:11:00) ( ZTS MSVC15 (Visual C++ 2017) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.6, Copyright (c) 1998-2018 Zend Technologies
    with Xdebug v2.7.2, Copyright (c) 2002-2019, by Derick Rethans

Sources & Ressources

Vous pourriez laisser un commentaire si vous étiez connecté.