diff --git a/dk b/dk index 374017a..4f13107 100755 --- a/dk +++ b/dk @@ -154,6 +154,14 @@ COMMANDES Cette valeur doit être spécifiée avec le format de PHP_VERSION_ID i.e 70300 pour PHP 7.3 Spécifier 'any' ou 'force' pour forcer l'utilisation de l'image docker + * COMPOSER_PHP_MAX -- Version de PHP à partir de laquelle COMPOSER_IMAGE + est utilisée. En d'autres termes, c'est la version maximum de PHP, à + partir de laquelle il faut passer par une image docker. L'idée est que + si la version de PHP installée est trop récente, ça peut poser + problème avec le calcul des dépendances. + Cette valeur doit être spécifiée avec le format de PHP_VERSION_ID i.e + 70300 pour PHP 7.3 + Si la valeur n'est pas spécifiée ou vaut 'none', elle est ignorée. * COMPOSER_IMAGE -- Image utilisée pour lancer composer. La valeur par défaut est: $DEFAULT_COMPOSER_IMAGE @@ -1401,6 +1409,7 @@ function local_composer() { default_local_composer "$@"; } function docker_composer() { default_docker_composer "$@"; } function auto_composer() { local COMPOSER_PHP= + local COMPOSER_PHP_MAX= local COMPOSER_IMAGE="$DEFAULT_COMPOSER_IMAGE" local COMPOSER_MACHINE=-u local COMPOSER_CMD= @@ -1410,6 +1419,7 @@ function auto_composer() { while [ $# -gt 0 ]; do case "$1" in COMPOSER_PHP=*) setv "$1"; shift;; + COMPOSER_PHP_MAX=*) setv "$1"; shift;; COMPOSER_IMAGE=*) setv "$1"; shift;; COMPOSER_MACHINE=*) setv "$1"; shift;; COMPOSER_CMD=*) setv "$1"; shift;; @@ -1419,7 +1429,20 @@ function auto_composer() { done local use_image - if [ -z "$COMPOSER_PHP" ]; then + if [ -n "$COMPOSER_PHP_MAX" -a "$COMPOSER_PHP_MAX" != none ]; then + # Vérifier la version de PHP + php -r ' +$version = $argv[1]; +if (strpos($version, ".") !== false) { + $version = explode(".", $version); + $version = $version[0] * 10000 + $version[1] * 100 + (isset($version[2])? $version[2]: 0); +} +exit((PHP_VERSION_ID > $version)? 0: 1); +' -- "$COMPOSER_PHP_MAX" && use_image=1 + fi + if [ -n "$use_image" ]; then + : # ok, on a déjà décidé qu'il faut utiliser une image + elif [ -z "$COMPOSER_PHP" ]; then # pas de version minimum, tester simplement la valeur de COMPOSER_IMAGE [ "$COMPOSER_IMAGE" != none ] && use_image=1 elif [ "$COMPOSER_PHP" == force -o "$COMPOSER_PHP" == any ]; then