Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Erro no comando composer require php-di/php-di

Olá, pessoal. Estou com um problema ao tentar fazer o desafio, estava aplicando as configurações iniciais e ao tentar gerar o comando composer require php-di/php-di, o terminal me devolveu o seguinte erro. Tentei corrigir porém sem sucesso, qual seria a forma correta de resolver este problema, para que possa continuar o desenvolvimento do desafio?

Using version ^6.3 for php-di/php-di
./composer.json has been updated
Running composer update php-di/php-di
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - php-di/php-di[6.3.0, ..., 6.3.3] require psr/container ^1.0 -> found psr/container[1.0.0, 1.1.0, 1.1.1] but it conflicts with your root composer.json require (^2.0).
    - Root composer.json requires php-di/php-di ^6.3 -> satisfiable by php-di/php-di[6.3.0, 6.3.1, 6.3.2, 6.3.3].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

Desde já agradeço pela atenção.

8 respostas

Boa tarde Amigo,

Apague o arquivo composer.lock e tente rodar novamente o composer install.

Bom dia, Lucas. Fiz a exclusão do arquivo composer.lock e rodei novamente o composer install e o composer require php-di/php-di. O comando composer install rodou normalmente, mas ao rodar o comando composer require, aparece novamente o erro abaixo: Retorno do composer require php-di/php-di:

D:\Alura\gerenciador-de-cursos>composer require php-di/php-di
Using version ^6.3 for php-di/php-di
./composer.json has been updated
Running composer update php-di/php-di
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - php-di/php-di[6.3.0, ..., 6.3.3] require psr/container ^1.0 -> found psr/container[1.0.0, 1.1.0, 1.1.1] but it conflicts with your root composer.json require (^2.0).
    - Root composer.json requires php-di/php-di ^6.3 -> satisfiable by php-di/php-di[6.3.0, 6.3.1, 6.3.2, 6.3.3].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

O que eu poderia fazer pra solucionar este problema?

Opa, João. Seu composer.json tem uma versão diferente do psr/container da que o php-di depende.

A própria mensagem já te sugere como corrigir:

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

Roda assim, então:

composer require -W php-di/php-di

Olá, Vinicius. Eu já havia tentado fazer o require com o -W, mas ainda dava o erro. Mas pra confirmar, tentei fazer o comando novamente e o erro persistiu. Exclui mais uma vez o composer.lock e rodei o composer install, mas ao rodar o "composer require -W php-di/php-di", deu o erro novamente.

D:\Alura\gerenciador-de-cursos>composer require -W php-di/php-di
Using version ^6.3 for php-di/php-di
./composer.json has been updated
Running composer update php-di/php-di --with-all-dependencies
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - php-di/php-di[6.3.0, ..., 6.3.3] require psr/container ^1.0 -> found psr/container[1.0.0, 1.1.0, 1.1.1] but it conflicts with your root composer.json require (^2.0).
    - Root composer.json requires php-di/php-di ^6.3 -> satisfiable by php-di/php-di[6.3.0, 6.3.1, 6.3.2, 6.3.3].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

Como tá seu composer.json?

Segue o composer.json

{
    "autoload": {
        "psr-4": {
            "Alura\\Cursos\\": "src/"
        }
    },
    "require": {
        "doctrine/orm": "^2.9",
        "nyholm/psr7": "^1.4",
        "nyholm/psr7-server": "^1.0",
        "psr/container": "^2.0",
        "psr/http-server-handler": "^1.0",
        "psr/http-message": "^1.0"
    }
}

Já peço desculpa caso seja algum erro bobo, ainda não tenho muita prática com programação. haha

solução!

Se você mudar de

        "psr/container": "^2.0",

Para

        "psr/container": "^1.1",

Funciona?

Vinicius, agora funcionou. Alterei a versão manualmente pra 1.1 e rodei o require -W, agora foi. Muito obrigado!