Composer je nástroj sloužící na správu balíků, knihoven a dalších potřeb pro programovací jazyk PHP. Nejčasteji se používá ve spojení s PHP frameworky (například Laravel, Drupal, Sympfony a jiné). Composer je na hostingu dostupný automaticky, bez nutnosti instalace, přes Shell konzoli.
Jak začít?
1. Budeme potrebovat aktivní shell konzoli, postup její aktivace popisujeme v tomto návodu. Po připojení si můžeme nejprve ověřit, v jaké verzi je Composer nainstalovaný. Použijeme na to příkaz:
composer -v
příklad výsledku:
Poznámka: Pakliže potřebujeme Composer v jiné verzi, je možné ho nainstalovat lokálně. V tomto návodu používáme globálně dostupný Composer.
Pomocí příkazu cd se přesuneme do adresáře, ve kterém chceme mít projekt uložený, například:
cd domena.tld/web
Ukážeme si jednodušší ze dvou způsobů, kterým si nainstalujeme balík nesbot/carbon. Najdeme jej i na packagist.org, což je oficiální repozitář pro Composer.
2. Instalaci vykonáme spuštěním příkazu composer require vendor/balík:
composer require nesbot/carbon
jakmile se balíček úspěšně nainstaluje, dostaneme následující výpis:
Jelikož se jedná o první balík v našem projektu, vytvořili se automaticky soubory composer.json, composer.lock a taktéž adresář vendor.
Composer.json:
- v něm jsou definované balíky, na kterých je projekt závislý. Obyčejně je uložený v najvyšším adresáři projektu. Můžeme do něho zapisovat manuálně, anebo do něho zapíše Composer po tom, co spustíme příkaz require.
Composer.lock:
-obsahuje balíky, které náš projekt aktuálně využívá. Narozdíl od composer.json jsou tu definované přesně použité verzie, u kterých máme ověřené, že s nimi náš kód funguje.
Vendor:
-tento adresář obsahuje všechny soubory nainstalovaných balíků. Zároveň generuje autoload tried (definuje cesty pro automatické načítání tried nášeho projektu (autoloading) a případně zkratky ke skriptům, které nám mohou ulehčit práci při tvorbě projektu).
Když si otevřeme composer.json, uvidíme, co do něho composer zapsal:
Soubor obsahuje klíč „require“, název balíku, který je složený ze dvou častí ( název jeho tvůrce a samotného balíku) a taktéž verzi. Ta nemusí být definovaná přesně, ale například jako „2.0.*“, čímž určíme, že jakákoli verze mezi 2.0 a 2.1 je v pořádku.
Poznámka: pokud by se balík nenainstaloval, můžeme použít příkaz: composer why vendor/balík
3. Abychom mohli otestovat náš balík, vytvoříme si jednoduchý php skript, například pod názvem carbon.php. Vložíme do něho:
<?php
require __DIR__ . ‚/vendor/autoload.php‘;
use Carbon\Carbon;
printf(„Prave je %s“, Carbon::now()->toDateTimeString());
echo „<br>“;
printf(„V Londyne je %s“, Carbon::now(‚Europe/London‘)); //implicit __toString()
echo „<br>“;
printf(„Mam %s rokov“, Carbon::createFromDate(1992, 10, 24)→age);
Po uložení si můžeme soubor otevřít v prohlížeči (v našem případě je url neviem.uz/projekt/carbon.php) a dostaneme tento výsledek:
Funkce nainstalovaných balíků můžeme používat ve svém vlastním kódu, ze ktorého je tvořena webová stránka či jiný projekt.
Najčasteji využívané příkazy:
composer require vendor/balik
- přidá novou závislost do composer.json
composer update
- stáhne nové verzie všech balíků v composer.json, a taktéž všechny chybějící balíky
composer install
- nainstaluje všechny balíky v konkrétní verzi uvedené v composer.lock
composer show vendor/balik
- ukáže informace o nainstalovaném balíku
composer remove vendor/balik
- odstraní balík z projektu
Poznámka: pokud chceme použít composer s jinou php verzií než je předvolená v shell, upravíme příkaz nasledovně:
php7.4 /usr/local/bin/composer update
Note: Oficiální dokumentaci k dostupným příkazům najdeme na https://getcomposer.org/doc/03-cli.md