Assim como as versões de outros pacotes que eles requerem, os pacotes do Composer podem especificar as versões do PHP que eles suportam.
Ao resolver as versões dos pacotes a serem instalados, o Composer precisa encontrar versões que correspondam a todas as restrições existentes:
composer.json
Se não houver nenhum pacote que satisfaça todas essas restrições, você receberá um erro.
Observe que a restrição de versão para PHP segue as mesmas regras de outras restrições de compositor . Portanto, uma restrição de ^7.0
significa "qualquer versão de 7.x acima de 7.0" e não inclui 8.0.
Para resolver o problema, você precisa relaxar uma dessas restrições:
acme/some-package
no exemplo) e localize-o no Packagist (ou em qualquer fonte de pacote personalizado que você configurou).composer.json
e outros pacotes dos quais você depende não excluam essa nova versão. Por exemplo, se você atualmente depende da acme/some-package
versão ^1.0
, mas o PHP 8.0 só é suportado a partir da versão 2.2.0 em diante, você precisará alterar sua restrição para ^2.2
, e certificar-se de que seu aplicativo ainda seja compatível.Às vezes, você tem certeza de que seu aplicativo funcionará bem com as mesmas versões de pacotes que você usava anteriormente. Nesse caso, você pode usar a platform
variável de configuração em seu composer.json
para fingir que ainda está usando a versão antiga. Isso deve ser feito apenas como uma solução temporária ou para teste , pois significa que os pacotes que serão instalados podem estar completamente corrompidos em sua nova versão do PHP.
Por exemplo:
{
"config": {
"platform": {
"php": "7.4.999"
}
}
}
Veja também " Substituir a dependência base do PHP no compositor "