J'ai une structure de répertoire comme celle-ci:
composer.json < Main
packages/
balunker/
testpackage/
composer.json < Package
src/
TestPackage.php
Le composer.json
principal ressemble à ceci:
{
"name": "vagrant/composer-test",
"repositories": [
{
"type": "path",
"url": "packages/*/*"
}
],
"require": {
"balunker/testpackage": "*"
}
}
Alors que le paquetage composer.json
ressemble à ceci:
{
"name": "balunker/testpackage",
"autoload": {
"psr-4": {
"Balunker\\": "src/"
}
}
}
Sur composer update
, je reçois simplement un message indiquant que le package n'a pas pu être résolu. Aucun lien symbolique n'est créé et aucun paquet n'est installé. J'ai littéralement passé la moitié de ma journée à résoudre ce problème, sans succès.
J'ai également téléchargé une sortie composer update -vvv
verbeuse de this: http://Pastebin.com/mMRHsACk .
Ma version de compositeur est la dernière (à compter du 20 avril 2016 à 14h39 UTC) et tout cela tourne dans Vagrant (Debian).
N'IMPORTE QUELLE recommandation de la part de ce dernier est grandement appréciée. Je ne sais vraiment plus quoi faire d'autre.
J'ai également posté le problème sur Github et il s'avère que la documentation est un peu trompeuse. Ça dit:
{
"repositories": [
{
"type": "path",
"url": "../../packages/my-package"
}
],
"require": {
"my/package": "*"
}
}
Cependant, si vous avez juste un dépôt local sans version, vous devez utiliser:
{
"repositories": [
{
"type": "path",
"url": "../../packages/my-package"
}
],
"require": {
"my/package": "dev-master"
}
}
La version dev-master
est la clé ici (étant donné que vous travaillez sur la branche principale). C’était un peu exaspérant, mais grâce à quelques compositeurs utiles, je pouvais enfin comprendre.
J'espère que cela pourra aider quelqu'un à l'avenir.
Bonne chance!
Ce qui a fonctionné pour moi était très similaire à ce qui précède, mais je devais cibler spécifiquement la branche sur laquelle je développais.
En supposant que le code dans le répertoire/newapp se trouve au même niveau que/app et une branche nommée feature/the-new-package
"repositories": [
{
"type": "path",
"url": "newapp"
}
],
"require": {
"package/newapp": "dev-feature/the-new-package"
},
\ * n'a pas fonctionné, ni dev-master. Ce devait être dev-feature/the-new-package.
Pour les futurs utilisateurs de Google, ajoutez votre version au composer.json
, puis demandez le package avec l'option --prefer-source
.
Par exemple: composer require your-vendor/package:1.0.* --prefer-source