Compositor 2: ¿Qué hay de nuevo?

Composer, un administrador de dependencias para PHP, se lanzó hace unos 8 años y hoy se publica una nueva versión, 2.0. Composer ha recibido muchas características nuevas a lo largo de los años y ha seguido el ritmo de los estándares PHP. La segunda versión es compatible con proyectos más antiguos, pero traerá algunas características nuevas más geniales. En este artículo te contaré más sobre ellos.

Aceleración y optimización

Se han realizado mejoras de rendimiento en esta versión. Ahora no tiene en cuenta los paquetes ya instalados, como resultado, la actualización es mucho más rápida. También hemos mejorado el manejo de la memoria y el procesador.

. vendor , , . .

, , , , , hirak/prestissimo, .

Composer v2 es casi 2 veces más rápido al instalar laravel / laravel sin almacenamiento en caché.
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 , (*), .\

Si por alguna razón desea ignorar un requisito de plataforma específico, simplemente puede ejecutar el comando: composer install --ignore-platform-req php

Omitirá el requisito de PHP o una versión específica. Si va a ignorar todos los requisitos, debe usar el comando ya disponible en versiones anteriores --ignore-platform-reqs

Otras actualizaciones

Hay muchas funciones pequeñas nuevas y correcciones de errores que han mejorado su usabilidad y calidad. Si está interesado en obtener más información sobre ellos, consulte las Notas de la versión de Github .




All Articles