Come richiedere una forchetta con il compositore

qui è il mio compositore. Jeff, voglio usare la fork di Nodge per il progetto lessphp su 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" }, 

Ma ho questo errore quando faccio l’aggiornamento:

nodge / lessphp dev-master -> nessun pacchetto corrispondente trovato.

Non so come richiederlo correttamente questa fork …

Eventuali suggerimenti ?

Il modo più comune (e più semplice) di farlo è utilizzare un repository VCS.

Tutto ciò che devi fare è aggiungere la tua fork come repository e aggiornare il vincolo della versione in modo che punti al tuo ramo personalizzato. Il nome del tuo ramo personalizzato deve essere preceduto da dev- .

Esempio assumendo il monologo corretto per correggere un bug nel ramo di bugfix:

 { "repositories": [ { "type": "vcs", "url": "https://github.com/igorw/monolog" } ], "require": { "monolog/monolog": "dev-bugfix" } } 

Si noti che non si modifica l’istruzione require tranne che per specificare il ramo di bugfix. monolog/monolog ancora riferimento al pacchetto upstream ( monolog/monolog ), non alla tua fork personale ( igorw/monolog ). Puoi leggere i dettagli nei documenti

Usando VCS funziona:

 "name": "test/test", "repositories": [{ "type": "vcs", "url": "http://github.com/Nodge/lessphp" }], "require": { "leafo/lessphp": "dev-master" }, 

Ma se ho bisogno di un modulo che abbia questo composer.json , non funziona. Installa il progetto originale, non la fork.

Esempio

 "name": "example/example", "require": { "test/test": "dev-master" }, 

Dovrei menzionare di nuovo il repository. È normale?

Se non riesci a ottenere risposta @Neilime a lavorare per te, assicurati che la tua fork utilizzi un ramo diverso.

Per esempio, metti le tue modifiche su un ramo sul tuo fork chiamato my-bugfix , non hai aggiunto il prefisso nel tuo nome di ramo ma nel tuo compositore.json devi aggiungerlo. Il file del tuo compositore sarà simile a:

 "repositories": [ { "type": "vcs", "url": "http://github.com/yourname/packageName" } ], "require": { "owner/packageName": "dev-my-bugfix" }, 

Secondo la documentazione di Composer http://getcomposer.org/doc/05-repositories.md#vcs , è sufficiente specificare il repository originale (non il fork) nel require (“nodge / lessphp” nel tuo caso). Il compositore installerà la tua fork (guarda il codice nei venditori)

Di solito aggiungo un nodo “dist” alla definizione del pacchetto. Non ho mai avuto problemi a usarlo in questo modo.

Non riesco a ricordare da dove ho preso questo trucco, però, per ulteriori spiegazioni.

 { "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": "*" } } 

Ho provato molte opzioni ma dopo aver ottenuto questo post ho visto la luce e ha funzionato perfettamente.

Questo è ciò che devi fare:

1- Fork de repository

2- Creare un ramo e apportare le modifiche richieste.

3- Aggiungi l’etichetta del repository al tuo compositore.json

 "repositories": [ { "type": "vcs", "url": "https://github.com/user/yourforkname" } ] 

4- Nella riga di comando all’interno del tuo progetto richiede la tua fork in questo modo:

 composer require vendor/packagename:dev-branchname 

E voilà !!

Hai la versione della fork funzionante