Composer 2: O que há de novo?

Composer, um gerenciador de dependências para PHP, foi lançado há cerca de 8 anos e hoje uma nova versão é publicada, 2.0. O Composer recebeu muitos recursos novos ao longo dos anos e manteve o ritmo com os padrões do PHP. A segunda versão é compatível com projetos mais antigos, mas trará mais algumas novidades excelentes. Neste artigo, contarei mais sobre eles.

Aceleração e otimização

Aprimoramentos de desempenho foram feitos nesta versão. Agora não leva em consideração os pacotes já instalados, com isso, a atualização é muito mais rápida. Também melhoramos o manuseio da memória e do processador.

. vendor , , . .

, , , , , hirak/prestissimo, .

O Composer v2 é quase 2x mais rápido ao instalar laravel / laravel sem armazenamento em cache.
Composer v2 2 , laravel/laravel .

Composer . , Composer install/update .

, COMPOSER_DISABLE_NETWORK=1 :

COMPOSER_DISABLE_NETWORK=1 composer install

. , .:

https://repo.packagist.org could not be fully loaded (Network disabled, request canceled: https://repo.packagist.org/packages.json), package information was loaded from the local cache and may be out of date

, , :

The required git reference for gabrielanhaia/laravel-circuit-breaker is not in cache and network is disabled, aborting

--dry-run “require” “remove”

(composer update --dry-run. , , , vendor.

Composer 2.* composer require composer remove

root

root , .

, , :

Do not run Composer as root/super user! See https://getcomposer.org/root for details

Composer 2.* :

https://getcomposer.org/root for details
Continue as root/super user [yes]?

, . , --no-interaction

composer install --no-interaction

, . Composer 1.0 / . , ( ).

( ). , , packagist, .

, composer 2.x, . Composer 1.x , , , :

{
    "repositories": [
        {
            "type": "composer",
            "url": "https://example.org",
            "canonical": false
        }
    ]
}

, , , , , .

, foo/bar some-vendor/ composer .:

{
    "repositories": [
        {
            "type": "composer",
            "url": "https://example.org",
            "only": ["foo/bar", "some-vendor/*"]
        }
    ]
}

toy/package , , , .

{
    "repositories": [
        {
            "type": "composer",
            "url": "https://example.org",
            "exclude": ["toy/package"]
        }
    ]
}

only, exclude , (*), .\

Se, por algum motivo, você deseja ignorar qualquer requisito específico da plataforma, pode simplesmente executar o comando: composer install --ignore-platform-req php

Ele irá ignorar o requisito de PHP ou versão específica. Se você vai ignorar todos os requisitos, você deve usar o comando já disponível nas versões anteriores --ignore-platform-reqs

Outras atualizações

Existem muitos novos pequenos recursos e correções de bugs que melhoraram sua usabilidade e qualidade. Se você estiver interessado em aprender mais sobre eles, verifique as Notas de versão do Github .




All Articles