Чому PHP Composer так повільний?


99

Чому PHP Composer так повільний, коли все, що я роблю, це ініціювання проекту з нульовими залежностями? Ось команди, які я запускаю:

composer init

<крок до створення composer.json, визначте 0 нульових залежностей>

composer install

Зачекайте 3 хвилини (не перебільшення).

Все, що потрібно зробити композитору, - це втягнути автозавантажувач і створити /vendor, то чому так довго? Щодо цього, чому цього кроку не відбувається composer init?

Чи є варіант конфігурації, за допомогою якого я можу втягнути кешований автозавантажувач та постачальника init?


1
Більш серйозно: чи оновлювали ви свого композитора за останні 30 днів? Тільки минулого місяця відбулося значне покращення продуктивності коду
Марк Бейкер,

Я розпочав роботу compose installбільше 5 хвилин тому, і це ще не завершилось. Composer version 1.0-dev (07c644ac229a21df80180598d8bb9aaba232eecb) 2015-02-03 12:51:10. Можливо, це не остання версія, але все-таки новіша, ніж ваш мейнфрейм IBM ;-)
axiac

Будь ласка, підтвердьте, що зробилиcomposer self-update
sjagr

Я, оновив його минулого тижня чи близько того.
AgmLauncher

Я боровся з тим, що оновлення композитора та самооновлення композитора були неймовірно повільними. Займаючи більше 15 хвилин, а потім кидаючи винятки. Я змінив DNS-сервери маршрутизатора (від Google до власного провайдера), і композитор працював як шарм.
Гордон Хіклі

Відповіді:


43

Також вимкніть Xdebug . Xdebug може змусити Composer зайняти хвилини, навіть виконуючи таку просту команду, як composer --version.


1
Це насправді виявилося моїм питанням. Xdebug змушує композитора працювати надмірно повільно.
AgmLauncher

Будь ласка, спробуйте використовувати hirak / prestissimo. Це плагін для композитора, який допомагає швидко завантажувати пакети. посилання
Ritesh Chitrakar

3
На момент написання статті я мав однакову продуктивність з налагодженням або без нього, оскільки в 2020/2019 композитор автоматично вимкнув xdebug під час запуску, незважаючи на те, що установка yii2-starter-kit зайняла близько 200 секунд з усіма бібліотеками, будь то w / wo xdebug, тому ця відповідь застаріла
FantomX1

Побачив це, витягнув мій налагоджувач. Встановив, що, хоча xdebug налаштовано лише на FPM, CLI ініціював його, і моя IDE сиділа там у точці перерви, чекаючи мене.
Натискання

377

Оскільки Composer реалізований file_get_contents(). Це не має оптимізації TCP, не підтримує живих, не мультиплексує тощо.

Я створив плагін Composer для паралельного завантаження пакетів: https://packagist.org/packages/hirak/prestissimo

$ composer global вимагає hirak / prestissimo

Будь ласка, спробуйте. У моєму середовищі це composer installстає в 10 разів швидшим.


Ого, я пішов зі 124 секунд, щоб встановити новий проект laravel, лише на 21 секунду. Любіть це!
корни,

7
Хороші новини: Це було, очевидно, об’єднано з Composer 2 у січні 2019 року: github.com/composer/composer/pull/7904
Чак Ле Батт

@ChuckLeButt, але випустити все ще з поля зору :(
hejdav

Спасибі брате. Це в 20 разів швидше.
Ілляс Карім

61
  1. Переконайтеся, що у вас найновіша версія Composer.
  2. Встановіть у багатослівному режимі, наприклад, додавши -vvv composer global require "squizlabs/php_codesniffer=*" -vvv
  3. Якщо ви зможете дізнатись, де Composer стикається з повільністю, наприклад, мій застряг на 5 хвилин під час завантаження пакетів. На завантаження файлу 20 КБ через з'єднання 50 Мбіт / с пішло> 5 хвилин. Це було тому, що він завантажував пакети з пакувальника за допомогою HTTP, а не HTTPS. Внесення цих змін до конфігурації вирішило мою проблему: composer config --global repo.packagist composer https://packagist.org

3
Я новачок у композиторі і намагаюся це виправити протягом 2 днів, після прочитання Вашого коментаря та додавання -vvv це нарешті спрацювало. 1000 голосів проти
Huy

# 3 вирішив це для мене. Ти зараз мій герой. Довгий час хвилювався, чому це так повільно і працює лише на деяких з’єднаннях з Інтернетом. Дякую!
Андреас Шантль,

composer config --global repo.packagist composer https://packagist.org що це було! Чудово! 🏆
Ріші

13

Тут теж саме. Отримайте докладнішу інформацію за допомогою "composer install --profile -vvv". У моєму випадку завантаження кількох файлів JSON займає багато часу. Вони кешуються на моєму сервері, але вони все одно завантажуються під час кожного виклику оновлення / встановлення Composer.

... через 30 хвилин ...

Це схоже на деяку проблему з продуктивністю @ Packagist.org. Тепер установка Composer виконується протягом 2 секунд! А завантажені файли JSON правильно кешуються.


1
"Вони кешуються на моєму сервері, але все одно завантажуються з кожним викликом оновлення / встановлення композитора" ЦЕ !! Ви знайшли рішення цієї проблеми? У мене повільний зв’язок, і страшно це бачити.
lud

9

Я стикався з цією проблемою, і це викинуло мене на криву, оскільки на моїй машині ніде не встановлено Xdebug. Виявляється, це були збої в режимі адресації IPv6 . Тож на тест я побіг

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

IPv4 пройшов, але IPv6 не вдався. Врешті-решт, вам слід розібратися, чому ваш мережевий стек цього не підтримує, але в моєму випадку я вирішив просто віддати перевагу трафіку IPv4, поки не зможу це вирішити. На CentOS я створив / змінив файл /etc/gai.conf і помістив наступне:

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

На Ubuntu ви також можете редагувати цей файл і розкоментувати рядок

precedence ::ffff:0:0/96  100

Джерело на Rackspace Community Hub


Тільки для примітки, це, здавалося, особисто мені не допомогло, хоча мені доведеться переформулювати це, щоб підтвердити всі варіанти, який із них може бути причиною.
FantomX1

@ FentomX1 Вибачте, що це чую. Ось чому я включив тест зверху. Якщо ви виконуєте обидва тести на скручування, і він підключається, то, очевидно, зміни не слід вносити, оскільки ваша мережа налаштована правильно.
Аарон Чемберлен,

1
Знайшов коротке відео на YouTube, де показано, як це зробити в Windows 10. Це вирішило мою проблему. youtube.com/watch?v=63Lt_vlNWLc
Маркус,

5

На Ubuntu Xenial 16.04 VPS вам потрібно зробити наступне:

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

Він налаштовує IPv4 як кращий порівняно з IPv6.

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


з тих пір, як я встановив prestissimo, моя композиторська швидкість була чудовою.
Велике дерево

3
Я можу підтвердити, що це рішення працює навіть для ubuntu 18.04LTS
mwangaben

Будь ласка, додайте до своєї відповіді якесь пояснення, щоб інші могли навчитися з цього. Що робить цей перший рядок?
Ніко Хаасе,

@NicoHaase Якщо ви подивитесь на мітки часу, ця відповідь насправді є відповіддю на проблему, яку я описав, але вони не поставили її як коментар. Я все одно включив це у свою відповідь. Здається, пакувальник воліє використовувати IPV6, але деякі мережі все ще погано працюють з ним. Перший рядок робить так, що ваша машина Linux віддасть перевагу адресам IPv4 і шукатиме їх першими.
Аарон Чемберлен

1

У моєму випадку композиторська версія, яку я запускав із датою. Після оновлення самої версії композитора проблема зникла.

Щоб оновити версію композитора, запустіть

composer self-update

а потім вимагають композиторський пакет, і все готово.

composer require "<package-name>"

судо? корінь? чому?
Мохамед Ельбахжа

вибачте, брате, додайте sudo, якщо у вас проблеми з дозволом.
sh6210

чи слід виправити режим файлу та дозволи власника / групи? а не просто запускати SUDO! не знаючи, що це означає? точно не FIX.
Мохамед Ельбахжа

звичайно, ви можете вирішити проблему дозволу власника / групи, запустивши команду "chown", але ви можете зробити це одним рухом. Моїм головним наміром було показати рішення найпростішим способом з моєї точки зору. Однак мені шкода, якщо мої слова для вас не мають жодного сенсу.
sh6210

@ sh6210 Не заохочуйте використовувати sudo під час використання композитора. Якщо припустити, що permissionпроблема може "мати", це упередження.
dbf

0

Якщо будь-яка з попередніх відповідей не працює, перевірте, чи дозволяє ваш брандмауер TCP_OUT на порту 9418.

Захист мого брандмауера була занадто гострою. Це призвело до того, що Composer зайняв так багато часу, я ніколи не отримував жодного тайм-ауту або вказівки, що порт заблокований.


Чи був ваш процесор зайнятий під час оновлення?
Євген Афанасьєв

0

Мій повільно завантажував файли JSON через антивірус. Деякі антивіруси сканують весь веб-трафік, і аналіз файлів json може бути повільним. Спробуйте вимкнути AV під час запуску композитора.


0

Редагувати: Висновок: жодне рішення, перелічене тут, або взагалі здається куленепробивним. У підсумку допомагає, як правило, використання композитора поступово, вимагаючи або вилучаючи лише один пакет за один раз, використовуючи composer require,composer remove команду, також стосується додавання будь - яких «конкретні без залежності» настройки, будь-яка бібліотека може додавати / видаляти заради нього коригування / оновлення конфігурації кешу блокування composer.json.

Групуючи мій досвід із відповідями звідси та зі зв’язаного питання.

До цього я перепробував кожне згадане рішення у цьому питанні. Однак мені це все одно не допомогло, хоча я намагався / помітив, що встановлення будь-якої іншої окремої бібліотеки було значно швидким, тому я продовжував досліджувати бібліотеки одну за одною, що могло спричинити за собою горловину.

1) ТАК І я визначив, що це кодецепція,"codeception/codeception": "2.4.0",

На це пішло майже 200 секунд, хоча запуск його разом з іншими бібліотеками часом здавався майже 12-хвилинним. Крім того, композитор, здається, не відображає реальний час, коли після ініціювання протягом 20 секунд видає, що він працює 0,35 с і так далі.

[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]

Біг раніше

 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) ТАК Btw, prestissimo, як я вже згадував, вже застосовувався, і це, здається, допомогло, оскільки на іншому дуже швидкому комп’ютері, який має набагато швидший Інтернет, взагалі без кодецепції, установка зайняла в 5 разів більше, 518 секунд, хоча, можливо, завдяки prestissimo або іншим порадам тут це зайняло 110 секунд.

composer global require hirak/prestissimo

3) ТАК Windows працює повільно, а також віртуалізовані папки від Windows до Linux. Запуск поза спільною папкою всередині Linux, здавалося, пришвидшив її приблизно вдвічі. Хоча це може бути через кеш.

4) НІ

    "process-timeout": 1800,

це за один процес, такий як git checkout, і, здається, взагалі не допомагав, навіть встановив 10 секунд, оскільки це було вже значно величезним. Можливо, це допомагає лише в тому випадку, коли якась послуга повністю відключена.

5) ТАК встановлення із видаленою або порожньою папкою постачальника здається значно швидшою (близько 1 хвилини і більше), ніж додавання до файлів постачальника та інших пакунків, що існують у ній

6) ТАК здається повільнішим на Ubuntu18 apache2 без власного образу xdebug, ніж на Debian10 php-fpm, навіть з xdebug у Yii2-starter-kit, чомусь приблизно вдвічі повільніше, cat /etc/*-releaseщоб дізнатись про розподіл Linux

7) php -ddefault_socket_timeout=1 /usr/local/bin/composer --verbose --profile install Згадане тут НІ, здається, не допомогло повільному оновленню композиторських залежностей, незважаючи на прапор --prefer-dist, а також не згаданий протокол IP v6 v v4 Хоча це може бути належним чином кеш.

8) НІ Встановлення zip, здається, не допомагає, при встановленні PHP було попередньо встановлено zip, він все ще скаржився, що не був там, поки не був встановлений як пакети Linux, але він зробив процес в одному моделюванні повільнішим на 100 секунд з 650 до 750 секунд. Однакові умови навколишнього середовища. As there is no 'unzip' command installed zip files are being unpacked using the PHP zip extension https://stackoverflow.com/a/51208804/3419535 тестування в умовах без кешу--no-cache

9) ТАК вилучити "minimum-stability ": "dev",

10) ТАК, використовуйте prefer-dist composer require robmorgan/phinx:@dev --prefer-dist -vvv --profile (використовуючи команду require як приклад, оскільки використання часткових команд require, як було згадано спочатку вище, замість повної установки за допомогою команди install, здається, є одним з найбільш значущих прискорень, плюс вимагає @ dev - як і в попередніх пунктах, якщо вони minimum-stability: devне застосовуються загально до всіх залежностей, здається нешкідливим для кожного випадку (залежності)


Як це пов’язано із заданим питанням? Відповідно до опису проблеми, у проблемі ОП немає жодної залежності
Ніко Хаасе,

Проблему слід вирішувати загально, я спробував узагальнити все, що мені допомогло, і додав деякі інші рішення з інших місць. Не завжди лише для того, про що запитує запитувач, тут з’являються тисячі сценаріїв для інших користувачів. Більшість відповідей є загальними. Composer require - це, в основному, лише частина підстановки композитора. Те, що я також використав слово / команду 'вимагати' у відповіді, не означає, що це не стосується також встановлення, але якщо ви хочете, я можу видалити це слово. 'Не вказано жодної залежності', але як це що-небудь змінює, установка композитора стосується нічого, крім залежностей.
FantomX1

Я перейшов від 1 бала до -1 лише через кілька хвилин, тому що відповів вам, можливо, тому, що ви проголосували за мене раніше. Скажіть мені, що обрана відповідь prestistimo або використання ipv 6 або вимкнення xdebug теж не є загальним і не застосовується до конкретної композиторської команди. Прошу вибачення за кілька поспішних редагувань, але я використовую його також як особисту вікі, і навіть не вказав конкретної назви депеденції, але скорегую її. Якщо вам не подобається, що я робив друкарську помилку, згадайте це, але не бути загальним не має сенсу. Я використовував команду 'require' як посилання, оскільки використання 'require' є одним із рішень.
FantomX1

1
ОП запитав, чому Composer повільний з нульовими залежностями - навіть якщо ваш список матеріалів може допомогти у багатьох інших ситуаціях, я не бачу жодного зв’язку з цим запитанням
Ніко Хаасе,

2
Prestissimo допомагає навіть при порожньому списку вимог - деякі файли завантажуються композитором незалежно від списку залежностей, тому паралельне завантаження також допоможе тут.
rob006


-1

Найкращий спосіб дізнатись - це запуск оновлення / інсталяції композитора з деталізацією. композитор {встановити / оновити} -vvv. Використання прапора -h може допомогти вам у майбутньому


Будь ласка, поділіться з цим поясненням. OP проводить тести, використовуючи абсолютно порожній список залежностей
Ніко Хаасе,

-1

У випадку, якщо ви видалили файл composer.lock, а потім пішли, composer installзавантажувати залежності стає занадто повільно. Якщо це так, скористайтеся composer updateкомандою, і це може допомогти вам чи іншим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.