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/