Свой Composer без баннеров

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Или как собрать composer.phar из исходников, добавить собственные изменения, подписать архив валидной сигнатурой и жить дальше.

Шаг 1 из 7

Клонируем официальные исходники необходимой версии Composer в локальную папку

git clone https://github.com/composer/composer.git

Шаг 2 из 7

Скачиваем "токсичную" сборку, в которой хотим что-либо изменить

wget https://getcomposer.org/composer.phar

Шаг 3 из 6

Ставим зависимости. Появляется папка ./vendor

cd composer && php ../composer.phar install

Шаг 4 из 7

Вносим необходимые изменения. В данном случае, удаляем токсичный политический баннер от со-автора Composer Jordi Boggiano.

Ищем функцию writeError() и добавляем пару строк с str_replace().

nano src/Composer/IO/ConsoleIO.php

public function writeError($messages, bool $newline = true, int $verbosity = self::NORMAL)
{
    $messages = str_replace('Ukraine', '', $messages);
    $messages = str_replace('#StandWith', '', $messages);
    $this->doWrite($messages, $newline, true, $verbosity);
}

Сохраняем. Можем проверить какие изменения у нас получились git status и git diff.

Шаг 5 из 7

Собираем свой новый Composer с фиксом. Composer умеет сам себя собирать в phar архив. Для чего запускаем bin/compile, выставив флаг readonly в 0.

php -d phar.readonly=0 bin/compile

** Кому интересен процесс сборки в деталях можно смотреть сюда https://github.com/composer/composer/blob/main/src/Composer/Compiler.php

Шаг 6 из 7

Проверяем, что больше никаких баннеров при апдейте пакетов, все изменения внесены и подписаны SHA512.

php composer.phar install
php composer.phar update

Шаг 7 из 7

Кто использует Composer глобально может перенести в /usr/local/bin

chmod +x composer.phar

sudo mv composer.phar /usr/local/bin/composer

** Надеюсь кому-то пригодится, кто левой пяткой во сне каждую ночь не собирает phar архивы своих проектов.

Источник: https://habr.com/ru/post/661017/


Интересные статьи

Интересные статьи

Привет! Я Илья, разработчик игр в Beeline Казахстан. Люблю изучать игры и однажды понял: платформ много, о существовании каких-то я даже не знаю — пора мне тоже заняться аркадами.В свободное время я с...
Крупные игроки в России, которые объединяют розницу, дистрибуцию, интернет-магазин, чаще всего задумываются о создании собственных маркетплейсов. Все просто: пандемия дав...
Кластеризация — это такая магическая штука: она превращает большой объём неструктурированных данных в потенциально обозримый набор кластеров, анализ которых позволяет делать выводы о содержании э...
После публикации первой части статьи по установке своего Minecraft сервера, ко мне обратился один читатель Хабра. В письме он написал, что по неосторожности показал мою статью своим детям и е...
В обновлении «Сидней» Битрикс выпустил новый продукт в составе Битрикс24: магазины. Теперь в любом портале можно создать не только лендинг или многостраничный сайт, но даже интернет-магазин. С корзино...