Maison  >  Article  >  outils de développement  >  Pourquoi Composer ne charge-t-il pas la base de code de manière récursive ?

Pourquoi Composer ne charge-t-il pas la base de code de manière récursive ?

藏色散人
藏色散人original
2019-08-14 14:26:321904parcourir

La colonne du didacticiel Composer ci-dessous expliquera pourquoi Composer ne charge pas récursivement la bibliothèque de codes. J'espère que cela sera utile aux amis dans le besoin !

Pourquoi Composer ne charge-t-il pas la base de code de manière récursive ?

Pourquoi Composer ne charge-t-il pas la base de code de manière récursive ?

Lorsque vous utilisez des bibliothèques personnalisées, vous pouvez rencontrer des problèmes car Composer ne chargera pas de manière récursive les bibliothèques d'exigences que vous demandez, vous devez donc redéfinir tous les fichiers composer.json dans ces bibliothèques.

Avant de détailler pourquoi c'est le cas, vous devez comprendre : l'utilisation principale des VCS personnalisés et des référentiels de packages est de tester temporairement quelque chose, ou de créer un projet pour apporter des améliorations, et votre Pull Request n'a pas été effectuée. mais par fusion, etc. Vous ne devriez pas les utiliser pour suivre vos packs privés, vous devriez d'ailleurs vous tourner vers Private Packagist pour gérer les packs privés pour votre entreprise ou même pour vous-même.

Il existe trois façons de faire en sorte que le résolveur de dépendances utilise votre référentiel personnalisé :

● Lire le référentiel du package racine, l'obtenir à partir du référentiel défini Tous les packages logiciels résolvent les dépendances exigences. Il s'agit de l'état actuel et cela fonctionne très bien, à l'exception de la limitation "impossible de charger le référentiel de manière récursive".

● Lisez le référentiel du package racine et initialisez le package de ressources à partir des dépôts définis en même temps. L'initialisation récursive est basée sur les dépôts définis dans tous les packages dépendants et les dépôts définis dans les autres packages dont ces dépendants. les packages dépendent de , etc., puis résolvez les exigences de dépendance. Cela peut fonctionner, mais cela aura un impact important sur la vitesse d'initialisation, car la lecture de chaque dépôt VCS prendra quelques secondes. Cela peut finalement échouer car différentes versions d'un package peuvent provenir du même package dans un référentiel de packages, mais d'une distribution/source différente. Il y a tellement de choses qui peuvent mal tourner.

● Lisez le référentiel du package racine, puis lisez les dépendances de premier niveau, puis lisez les autres packages dont dépendent ces packages dépendants, etc., puis analysez les exigences de dépendance. Cela semble plus efficace, mais présente toujours les problèmes de la deuxième solution. Parce que charger des référentiels dépendants n’est pas aussi simple qu’il y paraît. Vous devez charger les dépôts de tous les packages de dépendances correspondants possibles, et les définitions de ces packages peuvent entrer en conflit les unes avec les autres.

Pour plus de didacticiels sur l'utilisation du compositeur, veuillez visiter la colonne Tutoriel graphique sur l'utilisation des commandes du compositeur !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn