Вышла новая версия менеджера зависимостей Composer 2.0 для PHP

Появилась новая версия менеджера зависимостей PHP Composer 2.0 — первое полноценное обновление сервиса с момента его выхода в 2012 году. Подробно рассказываем, какие обновления менеджера вошли в этот релиз.
- Улучшение производительности
- Архитектурные изменения в загрузке и установке улучшений
- Улучшенные отчеты об ошибках
- Как обновить Composer?
- Что дальше?
Улучшение производительности
Разработчики кардинально переработали Composer — начиная от протокола взаимодействия между Composer и packagist.org, заканчивая параллельным скачиванием файлов с помощью curl. Это значительно улучшило скорость работы и снизило потребление памяти. Конкретный прирост производительности зависит от способа использования Composer, но разработчики обещают, что пользователи утилиты будут приятно удивлены изменениями.
Разработчики указывают, что запуск composer require laravel/laravel на обычном потребительском оборудовании с Composer 2 при пустом кэше теперь тратит до 60% меньше времени, чем предыдущая версия менеджера.

Архитектурные изменения в загрузке и установке улучшений
Во время установки или обновления все пакеты будут сначала блокироваться и обновляться в composer.lock, и только после этого загружаться в кэш — при этом возможны ситуации, при которых эти процессы будут происходить параллельно. После того, как все файлы будут успешно загружены, Composer извлечет их в каталог vendor-dir — это позволит избежать не полного обновления каталога vendor в случае ошибки в работе интернета, либо других локальных проблем в работе пакета.
Улучшенные отчеты об ошибках
Не всегда всё идет так, как мы ожидаем. Если не удаётся разрешить зависимости, новый Composer генерирует более короткие и точные отчёты об ошибках, чтобы вам было проще в них разобраться.
Как обновить Composer?
Если у вас установлен Composer 1.x, запуск команды composer self-update лишь предупредит о выходе новой стабильной версии. Для обновления запустите команду composer self-update —2.
При возникновении проблем есть возможность откатиться обратно до первой версии менеджера при помощи команды composer self-update —1 . Можно спокойно экспериментировать с новой версией и не бояться что-нибудь сломать. Файл composer.lock совместим с обеими версиями, поэтому и с ним проблем при обновлении и откате на предыдущую версию не будет.
Разработчики также отмечают, что главной проблемой при обновлении версии менеджера могут стать плагины, часть которых еще не поддерживают Composer 2. В случае, если некоторые плагины не поддерживают новую версию менеджера, их можно отключить перед установкой. Делается это при помощи команды composer —no-plugins .
Что дальше?
Composer по-прежнему поддерживает PHP 5.3 и выше, однако в дальнейшем разработчики собираются отказаться от поддержки версий EOL PHP. Composer 1.x будет получать критические обновления какое-то время, но лучше обновиться до Composer 2.0 как можно скорее.
Настройка Composer: В профессии PHP-разработчик на Хекслете есть несколько уроков, где мы подробно разбираем, как настроить Composer и как вообще с ним работать.
Как изменить версию composer: обновиться или откатиться на старую версию

С выходом второй версии composer, теперь она устанавливается по-умолчанию. Однако, некоторые приложения могут быть не полностью совместимы с 2 версией композера, поэтому вам, возможно, придётся использовать первую версию до тех пор, пока все несовместимости не будут устранены.
Именно из-за этого, в некоторых старых приложениях на Laravel вылетает ошибка: Laravel PackageManifest.php: Undefined index: name. Для того, чтобы исправить эту ошибку, нужно просто отказаться от использования второй версии composer и понизиться её до первой версии.
Чтобы понизить версию composer
Если по каким-либо причинам вам необходимо понизить версию композера (composer) до первой версии, вы можете выполнить следующую команду от имени root:
sudo composer self-update --1
Как обновить composer до 2 версии
И, в обратном порядке, когда ваше приложение будет готово к обновлению, чтобы обновить composer до 2 версии, выполните команду от имени root:
sudo composer self-update --2
Как узнать версию composer
Если вы не знаете наверняка, какая у вас версия composer, то для того, чтобы проверить установленную версию композера, выполните в консоли команду:
composer

Затем проскрольте в самый верх, к надписи composer, где вы и увидите текущую версию композера:

В серці. Назавжди.
Вчора у мене помер однокласник. А сьогодні бабуся. І хто б міг уявити, що цей рік принесе війну, смерть товариша, та смерть члена сім’ї? Це боляче. Проте це добре нагадування про те, як швидко тече час. І як його ціна збільшується кожної марно витраченої секунди. І я не скажу щось
20 мая 2022 г. 1 min read

Ось такий він, руський мир
«Руський мир» — звучить дуже сильно та виправдовуюче. Гарна обгортка виправдання слабкості, аморальності та нікчемності своїх дійсних намірів. Руський мир, який дуже солодко звучить для всіх, хто хоче закрити очі на факт повномасштабної війни. Дуже добре виправдання вбивства для купки звірів. Втім, це ж росія, в якій все виглядає логічно
16 апр. 2022 г. 3 min read

Перехват запросов и ответов JavaScript Fetch API
Перехватчики — это блоки кода, которые вы можете использовать для предварительной или последующей обработки HTTP-вызовов, помогая в обработке глобальных ошибок, аутентификации, логирования, изменения тела запроса и многом другом. В этой статье вы узнаете, как перехватывать вызовы JavaScript Fetch API. Есть два типа событий, для которых вы можете захотеть перехватить HTTP-вызовы:
Как обновить composer через консоль OpenServer?
Возникла проблема, решил установить для фреймворка библиотеку через php composer. Я работаю с OpenServer, composer на нем установлен по умолчанию. Через консоль OpenServer стал скачивать библиотеку и получил сообщение что мой composer надо обновить. Стал обновлять командой c:\openserver\modules\php\PHP-5.3\composer.phar self -update в итоге Windows выводит сообщение joxi.ru/J2bNBJXS45dZk2 не может открыть файл composer.phar
В чем проблема?
- Вопрос задан более трёх лет назад
- 37471 просмотр
Комментировать
Решения вопроса 1

Учим yii: https://youtu.be/-WRMlGHLgRg
переходите с посощью cd в папку domains/ваш сайт и запускаете
composer self-update
Ответ написан более трёх лет назад
Нравится 19 4 комментария
Александр @inviziblll Автор вопроса

Александр: Пожалуйста. Можете даже ответом отметить
Как обновить composer в проекте до > 2.*?
Добрый день, возник вопрос по composer`у.
В моем проекте (сайт на php) используется composer 1.9.3 (локально).
Есть нужда обновить его до последней версии (а также библиотеки) без потерь работоспособности проекта.
При использовании версии > 2.* возникают ошибки автозагрузчика и тд.
Подскажите, по какому алгоритму можно провести данную операцию? 🙂
Возможно есть какие-либо нюансы в переходе с 1.* на 2.*
- Вопрос задан более двух лет назад
- 710 просмотров
Комментировать
Решения вопроса 2

сначала апгрейдите сам композер, затем пакеты.
проблем быть не должно (все актуальные пакеты уже переписаны под изменения композера).
но таки лучше предварительно откатать на копии, а не рабочем проекте.
вторая версия — огонь. и переходить на неё нужно обязательно.
но могут быть проблемы со старыми (не поддерживаемыми) пакетами. тогда прост или ищите современную замену этому пакету, или конкретно для этого проекта пользуете старый композер.
Ответ написан более двух лет назад
Комментировать
Нравится 1 Комментировать
Кирилл Горелов @Kirill-Gorelov
С ума с IT
Рубрика вредные советы
1. composer self-update —2
2 способ. опасный. Но у меня сработало без проблем
sudo apt-get remove composer sudo apt-get remove --auto-remove composer sudo apt-get purge composer sudo apt-get purge --auto-remove composer echo 'удалил composer' cd /home/kirill/Документы/composer php composer-setup.php sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer composer -V echo 'composer обновил'
Ответ написан более двух лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- JavaScript
- +1 ещё
Как искать в тегах script при помощи php?
- 1 подписчик
- 10 часов назад
- 60 просмотров