Composer

Composer: Rychlý přehled

Composer je skvělý nástroj určený pro instalaci knihoven napsaných v jazyce PHP, správu jejich verzí a závislostí mezi sebou.

Instalace composeru

Composer stáhneme z domovského webu projektu a nainstalujeme.

Použití composeru

Composer používáme z příkazové řádky.
Seznam dostupných příkazů zobrazíme pomocí příkazu:

$ composer help

Inicializace composeru v projektu

V kořenovém adresáři PHP projektu vytvoříme soubor composer.json. (Jedná se o běžný textový soubor ve formátu JSON.)
Soubor lze vytvořit manuálně, ale snazší je použít příkaz:

$ composer int

který vygeneruje soubor automaticky a vytvoří jeho základní strukturu.

$ composer create-project nette/web-project
  • create-project – vytvoření nového projektu na základě uvedené knihovny (podobně jako git clone checkout následovaný composer install)

Instalace nové knihovny

$ composer require <nazev_balicku>

Můžeme také vynutit instalovat pouze verzi určenou pro distribuci, pokud je k dispozici:

$ composer require --prefer-dist <nazev_balicku>

Instalace knihovny pro vývojové prostředí:

$ composer require --dev phpstan/phpstan

Update na nečisto

$ composer update --dry-run

Zobrazí seznam knihoven k aktualizaci.

Update

$ composer update
  • provede aktualizaci knihoven na nejnovější verzi.

Aktualizace konkrétní knihovny:

$ composer update <vendor>/<nazev_balicku>

Status

$ composer status
$ composer status -v
  • zobrazí změny v kódu v lokální verzi knihoven

Konfigurace composeru – composer.json

autoload

Composeru můžeme sdělit, aby zahrnul do autoloadingu naše vlastní třídy:

{
    "autoload": {
        "psr-4": {"Acme\\": "src/"}
    }
}

Správa verzí knihoven

...
"php": "~7.1",
"guzzlehttp/guzzle": "~6.0",
"tracy/tracy": "^2.6",
...

Konkrétní verze

1.0.2

Rozsah verzí

>=1.0
>=1.0 <2.0
>=1.0 <1.1 || >=1.2

Rozsah verzí se spojovníkem (-)

1.0 - 2.0
  • ekvivalent >=1.0.0 <2.1

Wildcard rozsah (.*)

1.0.*
  • ekvivalent >=1.0 <1.1

Tilda rozsah (~)

~1.2
  • ekvivalent >=1.2 <2.0.0
~1.2.3
  • ekvivalent >=1.2.3 <1.3.0

Caret rozsah (^)

^1.2.3
  • ekvivalent >=1.2.3 <2.0.0

Více na getcomposer.org: Versions and constraints.

Zvláští případy

Vyřazení závislosti

Pokud potřebujeme v projektu použít knihovnu, jež je závislá na jiné knihovně, která však není s vlastním projektem kompatibilní (např. nesplňuje úroveň minimální stability), můžeme tuto knihovnu vyloučit ze závislostí.
Knihovnu pak můžeme do projektu umístit manuálně.

Knihovnu uvedeme v konfiguračním souboru composer.json v sekci replace:

{
  "name": "App",
  "require": {
    "some/package": "1.0.0"
  },
  "replace": {
    "zendframework/zend-mail": "*"
  }
}

Knihovna zendframework/zend-mail nebude stažena.

Zdroje

  • https://getcomposer.org/

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *