1
votes

Installer correctement une dépendance du compositeur

J'ai installé la dernière version de laravel (7). Maintenant, j'ai besoin d'un certain paquet :( mercadopago / dx-php)

Et jette le conflit suivant:

"name": "doctrine/inflector",
            "version": "2.0.3",
            "source": {... etc

J'ai essayé:

composer depends doctrine/inflector

Et lance: laravel/framework v7.15.0 requires doctrine/inflector (^1.4|^2.0)

Si j'ai bien compris, tout fonctionnera bien si je supprime doctrine / inflector [2.0.3], et installe, par exemple, doctrine / inflector [1.4.3].

composer.lock a ce qui suit:

Problem 1
    - Installation request for mercadopago/dx-php ^2.0 -> satisfiable by mercadopago/dx-php[2.0.0].
    - Conclusion: remove doctrine/inflector 2.0.3
    - Conclusion: don't install doctrine/inflector 2.0.3

- mercadopago/dx-php 2.0.0 requires doctrine/inflector ^1.0 -> satisfiable by doctrine/inflector[1.0.x-dev, 1.1.x-dev, 1.2.x-dev, 1.3.1, 1.3.x-dev, 1.4.0, 1.4.1, 1.4.2, 1.4.3, 1.4.x-dev, v1.0, v1.0.1, v1.1.0, v1.2.0, v1.3.0].

 - Can only install one of: doctrine/inflector[1.4.0, 2.0.3].
    - Can only install one of: doctrine/inflector[1.4.1, 2.0.3].
    - Can only install one of: doctrine/inflector[1.4.2, 2.0.3].
    - Can only install one of: doctrine/inflector[1.4.3, 2.0.3].
    - Can only install one of: doctrine/inflector[1.4.x-dev, 2.0.3].
    - Can only install one of: doctrine/inflector[1.0.x-dev, 2.0.3].
    - Can only install one of: doctrine/inflector[1.1.x-dev, 2.0.3].
    - Can only install one of: doctrine/inflector[1.2.x-dev, 2.0.3].
    - Can only install one of: doctrine/inflector[1.3.1, 2.0.3].
    - Can only install one of: doctrine/inflector[1.3.x-dev, 2.0.3].
    - Can only install one of: doctrine/inflector[v1.0, 2.0.3].
    - Can only install one of: doctrine/inflector[v1.0.1, 2.0.3].
    - Can only install one of: doctrine/inflector[v1.1.0, 2.0.3].
    - Can only install one of: doctrine/inflector[v1.2.0, 2.0.3].
    - Can only install one of: doctrine/inflector[v1.3.0, 2.0.3].
    - Installation request for doctrine/inflector (locked at 2.0.3) -> satisfiable by doctrine/inflector[2.0.3].

Quelle est la bonne façon d'installer doctrine / inflector version 1.4.3, après avoir déjà installé 2.0.3?


2 commentaires

peut-être juste: le composer require doctrine/inflector:^1.4


Ouais !, semble que, ça a fait l'affaire, je ne sais pas si quelque chose se briserait cependant ...


3 Réponses :


3
votes

Il semble que tout fonctionne bien rien qu'en faisant

composer require doctrine/inflector:1.4.0

Cependant, il lance l'avertissement suivant lors du diagnostic du composeur:

require.doctrine / inflector: les contraintes de version exactes (1.4.3) doivent être évitées si le paquet suit le contrôle de version sémantique.


0 commentaires

0
votes

L'installation de doctrine/inflector:1.4.0 m'a apporté quelques problèmes, comme la réflexion du nom des tables dans la base de données des modèles.

La solution la plus viable, me semble-t-il, est d'installer mecadopago/dx-php dans un autre répertoire et d'inclure ce nouveau chargement automatique dans le service de paiement de votre application.


2 commentaires

C'est une manière incorrecte d'utiliser composer. Mauvaise pratique.


Je suis d'accord. Mais malheureusement, je n'ai pas pu contourner les conflits.



0
votes

Supprimez votre fichier composer.lock , supprimez votre fournisseur de dossier et exécutez composer require "mercadopago / dx-php: 2.2.1"


0 commentaires