Composer versies, hoe werken ze?
Dirk Jan Laros · 8 minuten leestijd · Gepubliceerd op 1-6-2023

Composer versies, hoe werken ze?

We hebben al eerder geschreven over Semantic Versioning. Als iedereen heel secuur Semantic Versioning zou toepassen hadden we niet zoveel notaties nodig voor composer versies. We kunnen dan volstaan met een notatie als ^1.0. Maar wat betekenen alle tekens?

Hieronder staan de meest gebruikte notaties:

  • Exacte versie notatie: Dit is de meest strikte notatie en wordt gebruikt om een specifieke versie van een package te installeren. Bijvoorbeeld: phpunit/phpunit: 9.5.10.
  • Patroon notatie: Dit is een vrij strikte notatie en wordt gebruikt om alleen patches vrij te laten. Bijvoorbeeld phpunit/phpunit: 9.5.*
  • Range notatie: Dit is een flexibele notatie die gebruikt wordt om een range van versies te installeren. Bijvoorbeeld: phpunit/phpunit: ^9.5.
  • Wildcard notatie: Dit is de meest flexibele notatie en wordt gebruikt om alle versies te installeren. Bijvoorbeeld: phpunit/phpunit: *.

Je kunt deze notaties gebruiken in zijn project door ze te specificeren in het composer.json bestand. Hieronder staat een voorbeeld van hoe je de verschillende notaties kunt gebruiken in Laravel projecten:

{
    "require": {
        "php": "^7.4",
        "laravel/framework": "^8.0",
        "phpunit/phpunit": "^9.5"
    }
}

In dit voorbeeld wordt er gebruik gemaakt van de range notatie om de Laravel framework package te installeren. Dit betekent dat alle versies vanaf 8.0 geïnstalleerd kunnen worden, maar niet hoger dan 9.x.x.

Er zijn ook versie notaties mogelijk met ||, > en <. Deze notaties worden gebruikt om een range van versies te specificeren. Hieronder staan enkele voorbeelden:

  • >1.0: Dit betekent dat alle versies hoger dan 1.0 geïnstalleerd kunnen worden.

  • <2.0: Dit betekent dat alle versies lager dan 2.0 geïnstalleerd kunnen worden.

  • >=1.0: Dit betekent dat alle versies vanaf 1.0 geïnstalleerd kunnen worden.

  • <=2.0: Dit betekent dat alle versies tot en met 2.0 geïnstalleerd kunnen worden.

  • ||: Dit betekent dat een package geïnstalleerd kan worden als het voldoet aan één van de opgegeven versie ranges. Bijvoorbeeld: phpunit/phpunit: 9.5 || 10.0.

    Je kunt deze notaties gebruiken in zijn project door ze te specificeren in het composer.json bestand. Hieronder staat een voorbeeld van hoe je de verschillende notaties kunt gebruiken in Laravel projecten:

{
    "require": {
        "php": "^7.4",
        "laravel/framework": ">8.0 <9.0",
        "phpunit/phpunit": ">=9.5"
    }
}

In dit voorbeeld wordt er gebruik gemaakt van de > en < notaties om de Laravel framework package te installeren. Dit betekent dat alle versies hoger dan 8.0 en lager dan 9.0 geïnstalleerd kunnen worden.

Verder zijn er ook nog andere mogelijkheden met bijvoorbeeld -, maar die worden bijna nooit gebruikt.

Onze AI heeft deze bronnen gebruikt:

Snel aan de slag?
Of gewoon een vraag?

stuur een e-mail naar
info@q2-software.nl