Eu tenho vários PHPs (8.1 e 7.3). Se eu executar php -v
, obtenho 7,3.
Preciso executar algum comando com PHP para magento 2, por exemplo php bin/magento cache:flush
, mas preciso chamá-lo com php 8.1 para uma determinada pasta ( /var/www/company ), mas não quero sempre ter que especificar meu binário php 8, por exemplo php8.1 bin/magento cache:flush
para fazê-lo funcionar.
Existe uma maneira de fazer com que ele sempre use o PHP 8.1 SE eu estiver nesse diretório específico?
Esta é uma função wrapper rápida e suja que você pode usar em um shell como
sh
oubash
:Agora basta executar
php whatever …
e um ou outro executável será escolhido de acordo. Você pode confirmar isso tentandophp -v
em/var/www/company
e em outro lugar.Notas:
/var/www/company/*
em vez de/var/www/company/
.$PWD
contém o quepwd -L
seria impresso (veja o início desta resposta ). Você pode querer o quepwd -P
seria impresso; se for esse o caso, usecase "$(pwd -P)/" in
.c
é "local" sem nenhum arquivolocal c
. Por fim, o subshell é substituídophp
ouphp8.1
executável graças aexec
.