Perché PHP Composer è così lento?


99

Perché PHP Composer è così lento quando tutto ciò che faccio è avviare un progetto senza dipendenze? Ecco i comandi che eseguo:

composer init

<passare attraverso la creazione di composer.json, definire 0 zero dipendenze>

composer install

Attendi 3 minuti (non è un'esagerazione).

Tutto ciò che il compositore deve fare è inserire un caricatore automatico e creare /vendor, quindi perché ci vuole così tanto tempo? Del resto, perché quel passaggio non avviene composer init?

Esiste un'opzione di configurazione che posso utilizzare per inserire un caricatore automatico e un fornitore memorizzati nella cache init?


1
Più seriamente: hai aggiornato il tuo compositore negli ultimi 30 giorni? C'è stato un notevole miglioramento delle prestazioni del codice solo il mese scorso
Mark Baker

Ho iniziato compose installpiù di 5 minuti fa e non è stato ancora completato. Composer version 1.0-dev (07c644ac229a21df80180598d8bb9aaba232eecb) 2015-02-03 12:51:10. Forse non è la versione più recente ma è ancora più recente del tuo mainframe IBM ;-)
axiac

Conferma di averlo fattocomposer self-update
sjagr

L'ho aggiornato la scorsa settimana o giù di lì.
AgmLauncher

Ho lottato con l'aggiornamento del compositore e l'aggiornamento automatico del compositore essendo incredibilmente lento. Impiegare più di 15 minuti e quindi lanciare eccezioni. Ho cambiato i server DNS del mio router (da Google a quello del mio ISP) e il compositore ha funzionato a meraviglia.
Gordon Hickley

Risposte:


43

Inoltre, disabilita Xdebug . Xdebug può far sì che Composer impieghi minuti anche quando si esegue un comando semplice come composer --version.


1
Questo in realtà si è rivelato essere il mio problema. Xdebug rende il compositore molto lento.
AgmLauncher

Prova a usare hirak / prestissimo. È un plug-in per il compositore che ti aiuta a scaricare i pacchetti rapidamente. link
Ritesh Chitrakar

3
Nel momento in cui scrivo, ho avuto le stesse prestazioni con o senza debug, dal momento che nel 2020/2019 il compositore ha disabilitato automaticamente xdebug durante l'esecuzione, nonostante l'installazione di yii2-starter-kit abbia richiesto circa 200 secondi con tutte le librerie sia w / wo xdebug, quindi questa risposta sta diventando obsoleta
FantomX1

Visto questo, ho richiamato il mio debugger. Ho scoperto che anche se xdebug è configurato solo per FPM, la CLI lo aveva avviato e il mio IDE era seduto lì in un punto di interruzione che mi aspettava. Premi Continua e il compositore è rientrato.
ppostma1

378

Perché Composer è implementato da file_get_contents(). Non ha ottimizzazioni TCP, nessun Keep-Alive, nessun multiplexing, ecc.

Ho creato un plug-in Composer per scaricare pacchetti in parallelo: https://packagist.org/packages/hirak/prestissimo

$ composer global richiede hirak / prestissimo

Per favore provalo. Nel mio ambiente, composer installdiventa 10 volte più veloce.


Wow, sono passato da 124 secondi per installare un nuovo progetto Laravel a soli 21 secondi. Lo adoro!
cornips

7
Buone notizie: questo è stato apparentemente unito a Composer 2 nel gennaio 2019: github.com/composer/composer/pull/7904
Chuck Le Butt

@ChuckLeButt ma rilascia ancora fuori dalla vista :(
hejdav

Grazie Fratello. È 20 volte più veloce.
Ilyas karim

61
  1. Assicurati di avere l'ultima versione di Composer.
  2. Installa in modalità dettagliata aggiungendo -vvv, ad esempio composer global require "squizlabs/php_codesniffer=*" -vvv
  3. Se riesci a scoprire dove Composer sta affrontando la lentezza, ad esempio il mio si è bloccato per 5 minuti durante il download dei pacchetti. Ci sono voluti> 5 minuti per scaricare un file da 20 kB su una connessione a 50 Mbit / s. Questo perché stava scaricando i pacchetti da packagist utilizzando HTTP e non HTTPS. Apportare queste modifiche alla configurazione ha risolto il mio problema: composer config --global repo.packagist composer https://packagist.org

3
Sono nuovo al compositore e cerco di risolvere questo problema per 2 giorni, dopo aver letto il tuo commento e aggiunto -vvv, finalmente ha funzionato. 1000 voti positivi
Huy Trịnh

# 3 ha risolto per me. Sei il mio eroe adesso. È da un po 'di tempo che mi preoccupa il motivo per cui è così lento e funziona solo con alcune connessioni Internet. Grazie!
Andreas Schantl

composer config --global repo.packagist composer https://packagist.org che cos 'era questo! Eccezionale! 🏆
Rishi Kulshreshtha,

13

Lo stesso qui. Ottieni maggiori dettagli con "composer install --profile -vvv". Nel mio caso è necessario molto tempo per scaricare alcuni file JSON. Vengono memorizzati nella cache sul mio server, ma vengono comunque scaricati con ogni chiamata di aggiornamento / installazione di Composer.

... 30 minuti dopo ...

Sembra un problema di prestazioni @ packagist.org. Ora l'installazione di Composer viene eseguita entro 2 secondi! E i file JSON scaricati vengono memorizzati correttamente nella cache.


1
"Vengono memorizzati nella cache sul mio server ma vengono comunque scaricati con ogni chiamata di aggiornamento / installazione del compositore" QUESTO !! Hai trovato una soluzione a questo problema? Ho una connessione lenta ed è terribile vederlo.
lud

9

Mi stavo imbattendo in questo problema e mi stava mettendo in crisi poiché non avevo Xdebug installato da nessuna parte sulla mia macchina. Si scopre che si trattava di errori della modalità di indirizzamento IPv6 . Quindi per testare ho corso

curl --ipv4 'https://packagist.org/packages.json'
curl --ipv6 'https://packagist.org/packages.json'

IPv4 è andato a buon fine, ma IPv6 non è riuscito. Alla fine, dovresti cercare di scoprire perché il tuo stack di rete non lo supporta, ma nel mio caso, ho deciso di dare la preferenza al traffico IPv4 finché non riesco a risolverlo. Su CentOS ho creato / modificato il file /etc/gai.conf e inserito quanto segue:

label       ::1/128        0
label       ::/0           1
label       2002::/16      2
label       ::/96          3
label       ::ffff:0:0/96  4
precedence  ::1/128        50
precedence  ::/0           40
precedence  2002::/16      30
precedence  ::/96          20
precedence  ::ffff:0:0/96  100

Su Ubuntu puoi anche modificare quel file e rimuovere il commento dalla riga

precedence ::ffff:0:0/96  100

Fonte su Rackspace Community Hub


Solo per una nota, questo non sembra aiutarmi personalmente, anche se dovrò risimularlo per confermare tutte le opzioni, quale di esse potrebbe essere la causa.
FantomX1

@ FentomX1 Mi dispiace sentirlo. Ecco perché ho incluso il test in alto. Se esegui entrambi i test di curl e si connette, ovviamente, le modifiche non dovrebbero essere apportate perché la tua rete è impostata correttamente.
Aaron Chamberlain

1
Ho trovato un breve video di YouTube che mostra come eseguire questa operazione su Windows 10. Ha risolto il mio problema. youtube.com/watch?v=63Lt_vlNWLc
Marcus il

5

Su Ubuntu Xenial 16.04 VPS, devi fare quanto segue:

sudo sh -c "echo 'precedence ::ffff:0:0/96 100' >> /etc/gai.conf"
composer global require hirak/prestissimo

Configura IPv4 come preferito rispetto a IPv6.

/server/93717/setting-ipv4-as-preferred-protocol-over-ipv6


da quando ho installato prestissimo, la velocità del mio compositore è stata eccellente.
Big Tree

3
Posso confermare che questa soluzione funziona anche per Ubuntu 18.04LTS
mwangaben

Per favore aggiungi qualche spiegazione alla tua risposta in modo che altri possano imparare da essa. Cosa fa quella prima riga?
Nico Haase

@NicoHaase Se guardi i timestamp, questa risposta è in realtà una risposta al problema che ho descritto, ma non l'hanno inserita come commento. L'ho comunque incorporato nella mia risposta. Sembra che il packagist preferisca usare IPV6, ma alcune reti non funzionano ancora bene con esso. La prima riga fa in modo che la tua macchina Linux preferisca gli indirizzi IPv4 e cerchi prima quelli.
Aaron Chamberlain il

1

Nel mio caso, la versione del compositore che stavo eseguendo è retrodatata. Dopo aver aggiornato la versione del compositore stesso, il problema era scomparso.

Per aggiornare la versione del compositore, esegui

composer self-update

e poi richiedi il pacchetto composer e il gioco è fatto.

composer require "<package-name>"

sudo? radice? perché ?
Mohamed Elbahja il

scusa fratello, aggiungi sudo se hai problemi di autorizzazione.
sh6210

o dovresti correggere la modalità file e le autorizzazioni del proprietario / gruppo? piuttosto che eseguire solo SUDO! senza sapere cosa significa? sicuramente non è un FIX.
Mohamed Elbahja

naturalmente, puoi risolvere il problema di autorizzazione del proprietario / gruppo eseguendo il comando "chown", ma puoi farlo in una volta sola. La mia principale intenzione era mostrare la soluzione nel modo più semplice dal mio punto di vista. Tuttavia, mi dispiace se le mie parole non hanno alcun senso per te.
sh6210

@ sh6210 Non incoraggiare a usare sudo quando si usa il compositore. Presumere che ci sia "potrebbe" un permissionproblema è pregiudizio.
dbf

0

Se una delle risposte precedenti non funziona, controlla se il tuo firewall consente TCP_OUT sulla porta 9418.

La sicurezza del mio firewall era troppo precisa. Ciò ha fatto sì che Composer impiegasse così tanto tempo che non ho mai ricevuto alcun timeout o indicazione che la porta era bloccata.


Il tuo processore era occupato durante l'aggiornamento?
Yevgeniy Afanasyev il

0

Il mio è stato lento durante il download dei file json a causa dell'antivirus. Alcuni antivirus scansionano tutto il traffico web e potrebbero essere lenti nell'analisi dei file json. Prova a disabilitare il tuo AV durante l'esecuzione di Composer.


0

Modifica: conclusione: nessuna soluzione elencata qui o generalmente sembra essere a prova di proiettile. Ciò che alla fine aiuta è di solito utilizzare il compositore in modo incrementale, richiedendo o rimuovendo solo un singolo pacchetto alla volta utilizzando composer require,composer remove comando, inoltre riguarda l'aggiunta di qualsiasi ambiente "non-dipendenza specifico", qualsiasi libreria può essere aggiunto / rimosso per il gusto di farlo di aggiornamento / aggiornare la configurazione della cache di blocco composer.json.

Raggruppando la mia esperienza con risposte da qui e dal link in questione.

Prima ho provato ogni singola soluzione menzionata in questa domanda fino a questo momento. Tuttavia, ancora non mi ha aiutato, anche se ho provato / notato che l'installazione di qualsiasi altra singola libreria era considerevolmente veloce, quindi ho continuato a indagare sulle librerie una per una che potevano causare il collo di bottiglia.

1) SÌ E l'ho individuato come una codeception,"codeception/codeception": "2.4.0",

Ci sono voluti quasi 200 secondi da solo, anche se eseguirlo insieme ad altre librerie a volte sembrava quasi 12 minuti. Inoltre, il compositore non sembra riflettere in tempo reale quando, dopo l'avvio per 20 secondi, emette 0,35 secondi e così via in seguito.

[374.9MiB/173.14s]     39/45:   https://codeload.github.com/sebastianbergmann/php-text-template/legacy.zip/31f8b717e51d9a2afca6c9f046f5d69fc27c8686
[374.9MiB/173.16s]     40/45:   https://codeload.github.com/sebastianbergmann/diff/legacy.zip/720fcc7e9b5cf384ea68d9d930d480907a0c1a29
[374.9MiB/173.17s]     41/45:   https://codeload.github.com/sebastianbergmann/exporter/legacy.zip/68609e1261d215ea5b21b7987539cbfbe156ec3e
[374.9MiB/173.19s]     42/45:   https://codeload.github.com/sebastianbergmann/phpunit-mock-objects/legacy.zip/f9756fd4f43f014cb2dca98deeaaa8ce5500a36e
[374.9MiB/173.20s]     43/45:   https://codeload.github.com/sebastianbergmann/recursion-context/legacy.zip/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8
[374.9MiB/173.23s]     44/45:   https://codeload.github.com/sebastianbergmann/php-code-coverage/legacy.zip/4cab20a326d14de7575a8e235c70d879b569a57a
[374.9MiB/173.24s]     45/45:   https://codeload.github.com/doctrine/instantiator/legacy.zip/ae466f726242e637cebdd526a7d991b9433bacf1
[374.9MiB/173.24s]     Finished: success: 45, skipped: 0, failure: 0, total: 45
[374.8MiB/173.25s] Analyzed 6622 packages to resolve dependencies
[374.8MiB/173.25s] Analyzed 435842 rules to resolve dependencies
[374.8MiB/173.25s] Package operations: 54 installs, 0 updates, 0 removals
[374.8MiB/173.26s] Installs: sebastian/recursion-context:3.0.0, sebastian/exporter:3.1.2, doctrine/instantiator:1.3.0, phpunit/php-text-template:1.2.1, phpunit/phpunit-mock-objects:6.1.2, codeception/stub:1.0.4, sebastian/diff:3.0.2, sebastian/comparator:3.0.2, theseer/tokenizer:1.1.3, sebastian/version:2.0.1, sebastian/environment:3.1.0, sebastian/code-unit-reverse-lookup:1.0.1, phpunit/php-token-stream:3.1.1, phpunit/php-file-iterator:1.4.5, phpunit/php-code-coverage:6.0.5, sebastian/object-reflector:1.1.1, sebastian/object-enumerator:3.0.3, sebastian/global-state:2.0.0, phpunit/php-timer:2.1.2, symfony/polyfill-ctype:v1.17.0, webmozart/assert:1.8.0, phpdocumentor/reflection-common:2.1.0, phpdocumentor/type-resolver:1.1.0, phpdocumentor/reflection-docblock:5.1.0, phpspec/prophecy:v1.10.3, myclabs/deep-copy:1.9.5, sebastian/resource-operations:1.0.0, phar-io/version:1.0.1, phar-io/manifest:1.0.1, phpunit/phpunit:7.1.5, codeception/phpunit-wrapper:7.6.1, symfony/yaml:v4.4.8, behat/gherkin:v4.6.2, symfony/polyfill-mbstring:v1.17.0, symfony/dom-crawler:v4.4.8, symfony/css-selector:v4.4.8, symfony/browser-kit:v4.4.8, symfony/event-dispatcher-contracts:v1.1.7, psr/container:1.0.0, symfony/event-dispatcher:v4.4.8, symfony/service-contracts:v2.0.1, symfony/polyfill-php73:v1.17.0, symfony/console:v4.4.8, symfony/finder:v4.4.8, ralouphie/getallheaders:3.0.3, psr/http-message:1.0.1, guzzlehttp/psr7:1.6.1, guzzlehttp/promises:v1.3.1, symfony/polyfill-php72:v1.17.0, symfony/polyfill-intl-idn:v1.17.0, guzzlehttp/guzzle:6.5.3, symfony/process:v4.4.8, facebook/webdriver:1.7.1, codeception/codeception:2.4.0
[374.8MiB/173.28s]   - Installing sebastian/recursion-context (3.0.0): [374.9MiB/173.28s] Loading from cache[374.9MiB/173.28s]
[374.9MiB/173.28s]  Extracting archive[374.9MiB/173.51s]   - Installing sebastian/exporter (3.1.2): [374.9MiB/173.52s] Loading from cache[374.9MiB/173.52s]
[374.9MiB/173.52s]  Extracting archive[374.9MiB/173.75s]   - Installing doctrine/instantiator (1.3.0): [374.9MiB/173.76s] Loading from cache[374.9MiB/173.76s]
[374.9MiB/173.76s]  Extracting archive[374.9MiB/174.00s]   - Installing phpunit/php-text-template (1.2.1): [374.9MiB/174.00s] Loading from cache[374.9MiB/174.00s]
[374.9MiB/174.00s]  Extracting archive[374.9MiB/174.23s]   - Installing phpunit/phpunit-mock-objects (6.1.2): [374.9MiB/174.23s] Loading from cache[374.9MiB/174.23s]
[374.9MiB/174.23s]  Extracting archive[374.9MiB/174.55s]   - Installing codeception/stub (1.0.4): [374.9MiB/174.56s] Loading from cache[374.9MiB/174.56s]
[374.9MiB/174.56s]  Extracting archive[374.9MiB/174.80s]   - Installing sebastian/diff (3.0.2): [374.9MiB/174.80s] Loading from cache[374.9MiB/174.80s]
[374.9MiB/174.80s]  Extracting archive[374.9MiB/175.07s]   - Installing sebastian/comparator (3.0.2): [374.9MiB/175.07s] Loading from cache[374.9MiB/175.07s]
[374.9MiB/175.07s]  Extracting archive[374.9MiB/175.33s]   - Installing theseer/tokenizer (1.1.3): [374.9MiB/175.33s] Loading from cache[374.9MiB/175.33s]

La corsa prima

 Problem 1
    - Installation request for codeception/codeception 2.4.0 -> satisfiable by codeception/codeception[2.4.0].
    - Conclusion: remove symfony/finder v5.0.8
    - Conclusion: don't install symfony/finder v5.0.8
    - codeception/codeception 2.4.0 requires symfony/finder >=2.7 <5.0 -> satisfiable by symfony/finder[v2.7.0, v2.7.1, v2.7.10, v2.7.11, v2.7.12, v2.7.13, v2.7.14, v2.7.15, v2.7.16, v2.7.17, v2.7.18, v2.7.19, v2.7.2, v2.7.20, v2.7.21, v2.7.22, v2.7.23, v2.7.24, v2.7.25, v2.7.26, v2.7.27, v2.7.28, v2.7.29, v2.7.3, v2.7.30, v2.7.31, v2.7.32, v2.7.33, v2.7.34, v2.7.35, v2.7.36, v2.7.37, v2.7.38, v2.7.39, v2.7.4, v2.7.40, v2.7.41, v2.7.42, v2.7.43, v2.7.44, v2.7.45, v2.7.46, v2.7.47, v2.7.48, v2.7.49, v2.7.5, v2.7.50, v2.7.51, v2.7.6, v2.7.7, v2.7.8, v2.7.9, v2.8.0, v2.8.1, v2.8.10, v2.8.11, v2.8.12, v2.8.13, v2.8.14, v2.8.15, v2.8.16, v2.8.17, v2.8.18, v2.8.19, v2.8.2, v2.8.20, v2.8.21, v2.8.22, v2.8.23, v2.8.24, v2.8.25, v2.8.26, v2.8.27, v2.8.28, v2.8.29, v2.8.3, v2.8.30, v2.8.31, v2.8.32, v2.8.33, v2.8.34, v2.8.35, v2.8.36, v2.8.37, v2.8.38, v2.8.39, v2.8.4, v2.8.40, v2.8.41, v2.8.42, v2.8.43, v2.8.44, v2.8.45, v2.8.46, v2.8.47, v2.8.48, v2.8.49, v2.8.5, v2.8.50, v2.8.52, v2.8.6, v2.8.7, v2.8.8, v2.8.9, v3.0.0, v3.0.1, v3.0.2, v3.0.3, v3.0.4, v3.0.5, v3.0.6, v3.0.7, v3.0.8, v3.0.9, v3.1.0, v3.1.1, v3.1.10, v3.1.2, v3.1.3, v3.1.4, v3.1.5, v3.1.6, v3.1.7, v3.1.8, v3.1.9, v3.2.0, v3.2.1, v3.2.10, v3.2.11, v3.2.12, v3.2.13, v3.2.14, v3.2.2, v3.2.3, v3.2.4, v3.2.5, v3.2.6, v3.2.7, v3.2.8, v3.2.9, v3.3.0, v3.3.1, v3.3.10, v3.3.11, v3.3.12, v3.3.13, v3.3.14, v3.3.15, v3.3.16, v3.3.17, v3.3.18, v3.3.2, v3.3.3, v3.3.4, v3.3.5, v3.3.6, v3.3.7, v3.3.8, v3.3.9, v3.4.0, v3.4.1, v3.4.10, v3.4.11, v3.4.12, v3.4.13, v3.4.14, v3.4.15, v3.4.16, v3.4.17, v3.4.18, v3.4.19, v3.4.2, v3.4.20, v3.4.21, v3.4.22, v3.4.23, v3.4.24, v3.4.25, v3.4.26, v3.4.27, v3.4.28, v3.4.29, v3.4.3, v3.4.30, v3.4.31, v3.4.32, v3.4.33, v3.4.34, v3.4.35, v3.4.36, v3.4.37, v3.4.38, v3.4.39, v3.4.4, v3.4.40, v3.4.5, v3.4.6, v3.4.7, v3.4.8, v3.4.9, v4.0.0, v4.0.1, v4.0.10, v4.0.11, v4.0.12, v4.0.13, v4.0.14, v4.0.15, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7, v4.0.8, v4.0.9, v4.1.0, v4.1.1, v4.1.10, v4.1.11, v4.1.12, v4.1.2, v4.1.3, v4.1.4, v4.1.5, v4.1.6, v4.1.7, v4.1.8, v4.1.9, v4.2.0, v4.2.1, v4.2.10, v4.2.11, v4.2.12, v4.2.2, v4.2.3, v4.2.4, v4.2.5, v4.2.6, v4.2.7, v4.2.8, v4.2.9, v4.3.0, v4.3.1, v4.3.10, v4.3.11, v4.3.2, v4.3.3, v4.3.4, v4.3.5, v4.3.6, v4.3.7, v4.3.8, v4.3.9, v4.4.0, v4.4.1, v4.4.2, v4.4.3, v4.4.4, v4.4.5, v4.4.6, v4.4.7, v4.4.8].
    - Can only install one of: symfony/finder[v2.7.0, v5.0.8].
    - Can only install one of: symfony/finder[v2.7.1, v5.0.8].
    - Can only install one of: symfony/finder[v2.7.10, v5.0.8].
    - Can only install one of: symfony/finder[v2.7.11, v5.0.8].

2) SI Btw, prestissimo come ho detto era già applicato e sembrava aiutare, in quanto su un altro computer molto veloce che ha internet molto più veloce del tutto senza codeception, l'installazione ha richiesto 5 volte di più, 518 secondi, mentre forse a causa di prestissimo o altri consigli qui, ci sono voluti 110 secondi.

composer global require hirak/prestissimo

3) SI Windows è lento, così come le cartelle virtualizzate da Windows a Linux. L'esecuzione al di fuori della cartella condivisa all'interno di Linux sembrava accelerarla circa il doppio. Anche se potrebbe essere dovuto alla cache.

4) NO

    "process-timeout": 1800,

è per singolo processo come il checkout di git e non sembra aiutare affatto anche impostato su 10, poiché era già considerevolmente enorme. Forse aiuta solo quando c'è un'interruzione totale di un servizio.

5) SÌ l' installazione con una cartella del fornitore rimossa o vuota = appena sembra essere notevolmente più veloce (circa 1 minuto e più), rispetto all'aggiunta ai file del fornitore e ad altri pacchetti esistenti in essa

6) SÌ sembra essere più lento su Ubuntu18 apache2 senza la propria immagine xdebug, che su Debian10 php-fpm anche con xdebug su Yii2-starter-kit, per qualche motivo circa due volte più lento, cat /etc/*-releaseper scoprire la distribuzione Linux

7) NO php -ddefault_socket_timeout=1 /usr/local/bin/composer --verbose --profile install menzionato qui non sembra aiutare il lento aggiornamento delle dipendenze del compositore, nonostante il flag --prefer-dist né il protocollo IP v6 v4 menzionato sebbene potrebbe essere dovuto alla cache.

8) NO L' installazione di zip non sembra aiutare, l'installazione di PHP aveva zip preinstallata, si lamentava ancora di non esserci fino a quando non sono stati installati come pacchetti Linux, ma ha reso il processo in una singola simulazione più lento di 100 secondi da 650 a 750 secondi. Stesse condizioni ambientali. As there is no 'unzip' command installed zip files are being unpacked using the PHP zip extension https://stackoverflow.com/a/51208804/3419535 test in condizioni senza cache--no-cache

9) SI rimuovi "minimum-stability ": "dev",

10) SÌ, usa prefer-dist composer require robmorgan/phinx:@dev --prefer-dist -vvv --profile (usando un comando require come esempio, poiché l'uso di comandi di richiesta parziale come menzionato prima sopra, invece di un'installazione completa tramite un comando di installazione, sembra essere uno degli aumenti di velocità più significativi, oltre a richiedere @ dev- come nei punti precedenti quando minimum-stability: devnon applicato genericamente a tutte le dipendenze sembra essere innocuo se utilizzato per caso (dipendenza))


In che modo è correlato alla domanda data? In base alla descrizione del problema, non c'è una sola dipendenza elencata nel problema OP
Nico Haase

Il problema va affrontato genericamente, ho cercato di riassumere tutto ciò che mi ha aiutato, e ho aggiunto altre soluzioni da altrove. Non sempre solo per quello che chiede il richiedente, ecco che arrivano migliaia di scenari di altri utenti. La maggior parte delle risposte è generica. La richiesta del compositore è fondamentalmente solo una sottoparte dell'installazione del compositore. Solo perché ho usato anche una parola / comando 'require' nella risposta, non significa che non valga anche per l'installazione, ma se lo desideri posso rimuovere quella parola.'Non è elencata una sola dipendenza ', ma come cambia qualsiasi cosa, l'installazione del compositore non riguarda nient'altro che dipendenze.
FantomX1

Sono passato da 1 punto a -1 pochi minuti dopo perché ti ho risposto, forse perché mi hai votato in precedenza. Dimmi che la risposta scelta prestistimo o usando ipv 6 o disabilitando xdebug non è anche generica e non si applica a un compositore concreto richiede comando. Mi scuso per alcune modifiche affrettate, ma lo uso anche come wiki personale, e non ho nemmeno elencato un nome di dipendenza concreto, ma lo aggiusterò. Se non ti piace ho fatto un errore di battitura, menzionalo, ma non essere generico non ha senso. Ho usato un comando "require" come riferimento, poiché l'utilizzo di "require" è una delle soluzioni stesse.
FantomX1

1
L'OP ha chiesto perché Composer è lento con zero dipendenze - anche se il tuo elenco di cose potrebbe aiutare in molte altre situazioni, non vedo alcuna connessione alla domanda data
Nico Haase

2
Prestissimo aiuta anche con un elenco dei requisiti vuoto: alcuni file vengono scaricati dal compositore indipendentemente dall'elenco delle dipendenze, quindi anche il download parallelo sarà utile.
rob006


-1

Il modo migliore per scoprirlo è eseguire l'aggiornamento / installazione del compositore con verbosità. compositore {installazione / aggiornamento} -vvv. L'uso del flag -h potrebbe aiutarti in futuro


Per favore condividi una spiegazione per questo. L'OP sta eseguendo i test utilizzando un elenco di dipendenze completamente vuoto
Nico Haase il

-1

Nel caso, se hai cancellato il tuo file composer.lock e poi ci sei andato composer install, diventa troppo lento scaricare le dipendenze. Se questo è il caso, usa il composer updatecomando e quindi potrebbe aiutare te o altri.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.