voici mon composer.json, je veux utiliser le projet fork of lessphp de Nodge sur Github
"repositories": [{ "type": "package", "package": { "version": "dev-master", "name": "nodge/lessphp", "source": { "url": "https://github.com/Nodge/lessphp.git", "type": "git", "reference": "master" }, "autoload": { "classmap": ["lessc.inc.php"] } } }], "require": { "php": ">=5.3.3", "nodge/lessphp": "dev-master" },
Mais j’ai cette erreur quand je fais la mise à jour:
nodge / lessphp dev-master -> aucun paquet correspondant trouvé.
Je ne sais pas comment l’exiger correctement cette fourchette …
Aucune suggestion ?
La méthode la plus courante (et la plus simple) consiste à utiliser un référentiel VCS.
Tout ce que vous avez à faire est d’append votre fork en tant que référentiel et de mettre à jour la contrainte de version pour qu’elle pointe vers votre twig personnalisée. Votre nom de twig personnalisé doit être précédé de
dev-
.
Exemple en supposant que vous avez patché monolog pour corriger un bogue dans la twig bugfix:
{ "repositories": [ { "type": "vcs", "url": "https://github.com/igorw/monolog" } ], "require": { "monolog/monolog": "dev-bugfix" } }
Notez que vous ne modifiez pas l’instruction require sauf pour spécifier votre twig de correction de bogue. Vous monolog/monolog
toujours référence au paquet amont ( monolog/monolog
), pas à votre fork personnel ( igorw/monolog
). Vous pouvez lire les détails dans les docs
Utiliser VCS fonctionne:
"name": "test/test", "repositories": [{ "type": "vcs", "url": "http://github.com/Nodge/lessphp" }], "require": { "leafo/lessphp": "dev-master" },
Mais si j’ai besoin d’un module qui a ce composer.json
, cela ne fonctionne pas. Il installe le projet original, pas la fourchette.
"name": "example/example", "require": { "test/test": "dev-master" },
Je devrais mentionner à nouveau le référentiel. Est-ce normal?
Si vous ne pouvez pas obtenir de réponse @Neilime pour vous, assurez-vous que votre fork utilise une twig différente.
Par exemple, poussez vos modifications sur une twig de votre fork appelée my-bugfix
. dev-
préfixe de dev-
dans le nom de votre twig mais dans votre composer.json, vous devez l’append. Votre fichier de composition ressemblera à:
"repositories": [ { "type": "vcs", "url": "http://github.com/yourname/packageName" } ], "require": { "owner/packageName": "dev-my-bugfix" },
Selon la documentation de Composer http://getcomposer.org/doc/05-repositories.md#vcs , il suffit de spécifier le repository d’origine (pas le fork) dans le require
(“nodge / lessphp” dans votre cas). Composer installera alors VOTRE fourche (regardez le code dans les fournisseurs)
J’ajoute généralement un noeud “dist” à la définition du package. Je n’ai jamais eu de problème pour l’utiliser de cette façon.
Je ne me souviens pas de l’endroit où j’ai eu cette astuce, cependant, pour d’autres explications.
{ "repositories": [ { "type": "package", "package": { "version": "dev-master", "name": "nodge/lessphp", "source": { "url": "https://github.com/Nodge/lessphp.git", "type": "git", "reference": "master" }, "autoload": { "classmap": ["lessc.inc.php"] }, "dist": { "url": "https://github.com/Nodge/lessphp/archive/master.zip", "type": "zip" } } } ], "require": { "nodge/lessphp": "*" } }
J’ai essayé de nombreuses options, mais après avoir reçu ce message, j’ai vu la lumière et cela fonctionnait parfaitement.
C’est ce que vous devez faire:
1- Fourchette de stockage
2- Créez une twig et apportez les modifications nécessaires.
3- Ajouter l’étiquette du référentiel à votre composer.json
"repositories": [ { "type": "vcs", "url": "https://github.com/user/yourforkname" } ]
4- Dans la ligne de commande de votre projet, vous avez besoin de votre fourchette comme ceci:
composer require vendor/packagename:dev-branchname
Et Voilá !!
Votre version de fourche fonctionne