Composer je nástroj slúžiaci na správu balíkov, knižníc a ďalších závislostí pre programovací jazyk PHP. Najčastejšie sa používa v spojení s PHP frameworkami (napríklad Laravel, Drupal, Sympfony a iné). Composer je na hostingu dostupný automaticky, bez nutnosti inštalácie, cez shell konzolu.
Ako začať?
1. Budeme potrebovať aktívnu shell konzolu, postup jej aktivácie popisujeme v tomto návode. Po pripojení si môžeme najprv overiť, v akej verzii je Composer nainštalovaný. Použijeme na to príkaz:
composer -v
príklad výsledku:
Note: Ak potrebujeme Composer v inej verzii, je možné ho nainštalovať lokálne. V tomto návode používame globálne dostupný Composer.
Pomocou príkazu cd sa presunieme do priečinka, v ktorom chceme mať projekt uložený, napríklad:
cd domena.tld/web
Ukážeme si jednoduchší z dvoch spôsobov, ktorým si nainštalujeme balík nesbot/carbon. Nájdeme ho aj na packagist.org, čo je oficiálny repozitár pre Composer.
2. Inštaláciu vykonáme spustením príkazu composer require vendor/balik:
composer require nesbot/carbon
ak sa balík úspešne nainštaluje, dostaneme nasledovný výpis:
Nakoľko sa jedná o prvý balík v našom projekte, vytvorili sa automaticky súbory composer.json, composer.lock a taktiež priečinok vendor.
Composer.json:
-sú v ňom definované balíky, na ktorých je projekt závislý. Zvyčajne je uložený v najvyššom priečinku projektu. Môžeme do neho zapisovať manuálne, alebo do neho zapíše Composer po tom, čo pustíme príkaz require.
Composer.lock:
-obsahuje balíky, ktoré náš projekt aktuálne využíva. Narozdiel od composer.json sú tu definované presné použité verzie, u ktorých máme overené, že s nimi náš kód funguje.
Vendor:
-tento priečinok obsahuje všetky súbory nainštalovaných balíkov. Zároveň generuje autoload tried (definuje cesty pre automatické načítanie tried nášho projektu (autoloading) a prípadne skratky k skriptom, ktoré nám môžu uľahčiť prácu pri tvorbe projektu).
Keď si otvoríme composer.json, uvidíme čo do neho composer zapísal:
Súbor obsahuje kľúč „require“, názov balíka, ktorý je zložený z dvoch častí ( názvu jeho tvorcu a samotného balíka) a taktiež verziu. Tá nemusí byť definovaná presne, ale napríklad ako „2.0.*“, čím určíme, že akákoľvek verzia medzi 2.0 a 2.1 je v poriadku.
Note: ak by sa balík nenainštaloval, môžeme použiť príkaz: composer why vendor/balik
3. Aby sme mohli otestovať náš balík, vytvoríme si jednoduchý php skript, napríklad pod názvom carbon.php. Vložíme do neho:
<?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 súbor otvoriť v prehliadači (v našom prípade je url neviem.uz/projekt/carbon.php) a dostaneme takýto výsledok:
Funkcie nainštalovaných balíkov môžeme používať vo svojom vlastnom kóde, z ktorého pozostáva webová stránka či iný projekt.
Najčastejšie využívané príkazy:
composer require vendor/balik
-pridá novú závislosť do composer.json
composer update
-stiahne nové verzie všetkých balíkov v composer.json, a taktiež všetky chýbajúce balíky
composer install
-nainštaluje všetky balíky v konkrétnej verzii uvedené v composer.lock
composer show vendor/balik
-ukáže informácie o nainštalovanom balíku
composer remove vendor/balik
-odstráni balík z projektu
Note: ak chceme použiť composer s inou php verziou ako je predvolená v shell, upravíme príkaz nasledovne:
php7.4 /usr/local/bin/composer update
Note: Oficiálnu dokumentáciu k dostupným príkazom nájdeme na https://getcomposer.org/doc/03-cli.md