En travaillant sur un projet client pour Magento 2 - j'ai découvert de nombreuses méthodes de chargement et de suivi des extensions tierces.
Dans cette hypothèse, en supposant que nous utilisons la méthode d'installation de l'intégrateur (composer!), Quelles sont les meilleures pratiques pour gérer les extensions tierces?
Jusqu'à présent, chaque extension que j'ai achetée ou téléchargée avait son propre fichier composer.json - et je connais au moins trois façons différentes que les auteurs d'extensions recommanderaient d'installer leur extension:
- Copiez ces fichiers dans l'application / le code
- Copiez ce zip dans un dossier, ajoutez-le comme référentiel d'artefacts et exigez-le
- Ajouter ce référentiel en ligne (avec / sans authentification) et l'exiger
Jusqu'à présent, je suis tombé sur 1 & 2 et je suis en quelque sorte en train de soupçonner que # 3 existe. Mais ensuite, notant que ceux qui ont suggéré # 1, j'ai trouvé que vous pouvez avoir un référentiel "chemin" - déplacé mes extensions de l'application / du code vers le même dossier, j'ai décidé de mettre ces artefacts, et je l'ai exigé de cette façon.
Dans ce processus, la configuration de mes référentiels ressemble à ceci:
"repositories": {
"0": {
"type": "composer",
"url": "https://repo.magento.com/"
},
"artifacts": {
"type": "artifact",
"url": "artifacts"
},
"third-party": {
"type": "path",
"url": "artifacts/*/*"
},
},
Ma question est donc la suivante: quelle est la meilleure pratique ici? Comment gérez-vous les extensions tierces?
Jusqu'à présent, je crois que la façon dont je le fais est la meilleure façon - ne serait-ce que parce que leur composer.json est lu et que tout conflit de dépendance (ou contraintes de version PHP) deviendra apparent - mais je ne pense pas que ce soit suffisamment définitif.