Při tvorbě softwaru, ať už se jedná o menší, či rozsáhlý projekt, je téměř jisté, že jeho bezproblémový provoz bude záviset na externích knihovnách, modulech nebo komponentách. Tyto externí zdroje, nezbytné pro správnou funkčnost softwaru, se nazývají závislosti.
Efektivní správa závislostí je klíčová pro každý projekt. Naštěstí existuje řada nástrojů, které tuto správu automatizují a vývojářům usnadňují práci. Výběr nástroje pro správu závislostí je ovlivněn jazykem a ekosystémem, ve kterém pracujete.
Pokud vyvíjíte projekty v PHP, je Composer jasnou volbou pro správu závislostí.
Co je Composer?
Composer je velmi populární nástroj, který byl navržen pro správu závislostí v PHP. Inspirací pro Composer byly nástroje jako npm v Node.js a Bundler v Ruby. Umožňuje vám deklarovat externí knihovny, na kterých váš PHP projekt závisí, a následně je automaticky spravuje.
To znamená, že Composer se postará o instalaci i aktualizaci všech potřebných závislostí.
Důležité je také zdůraznit, že Composer není správce balíčků jako Apt nebo Yum. I když pracuje s knihovnami, ve výchozím nastavení se tyto knihovny neinstalují globálně do systému. Composer spravuje závislosti na úrovni jednotlivých projektů, a proto je instaluje pouze lokálně do adresáře daného projektu.
Composer vám také umožní zjistit, které verze balíčků jsou dostupné a kompatibilní s vaším projektem, a následně je nainstaluje. Navíc poskytuje jediný příkaz pro aktualizaci všech závislostí v projektu.
Composer je nepostradatelným nástrojem pro vývoj v PHP. Umožňuje efektivní správu závislostí a poskytuje přístup k rozsáhlému úložišti Packagist, kde najdete širokou škálu balíčků a knihoven pro PHP, které můžete použít ve svých projektech.
Správná správa závislostí pomocí nástroje jako Composer přispívá k modulárnímu vývoji softwaru, zjednodušuje správu verzí a zlepšuje spolupráci v týmu. Navíc pomáhá předcházet problémům s kompatibilitou a usnadňuje údržbu projektů.
Nyní se podíváme na to, jak nainstalovat Composer v Ubuntu. Nejdříve si ale projdeme nezbytné předpoklady.
Předpoklady pro instalaci Composer v Ubuntu
Pro instalaci Composer v Ubuntu potřebujete:
1. Mít přístup k terminálu na vašem počítači a spouštět příkazy jako uživatel s oprávněním root.
2. Mít nainstalované PHP verze 7.2.5 nebo novější. Verzi PHP zjistíte spuštěním příkazu v terminálu:
php -version
Pokud je PHP nainstalováno, měli byste vidět výstup podobný tomuto:
Pokud PHP nainstalováno nemáte, můžete jej nainstalovat příkazem:
sudo apt install php
3. Mít nainstalovaný systém pro správu verzí. Git je doporučenou volbou. Verzi Gitu zjistíte příkazem:
git --version
Pokud je Git nainstalován, měl by se zobrazit výstup s informací o verzi:
Pokud Git není nainstalován, nainstalujete ho příkazem:
sudo apt install git
4. Mít nainstalovaného správce archivů, například tar. Ověříte jeho přítomnost příkazem:
tar --version
Pokud tar nemáte, můžete ho nainstalovat pomocí příkazu:
sudo apt-get install tar
Jakmile splníte výše uvedené předpoklady, můžete přistoupit k instalaci Composeru.
Jak nainstalovat Composer na Ubuntu
Composer můžete nainstalovat globálně do systému nebo lokálně do specifického projektu. Globální instalace umožňuje spouštět Composer z libovolného adresáře, což je doporučený přístup.
Pro globální instalaci Composeru v Ubuntu použijeme skripty dostupné na stránce pro stahování Composeru.
Pro globální instalaci Composeru postupujte podle následujících kroků:
1. Otevřete terminál a stáhněte instalační skript Composeru do aktuálního adresáře:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
2. Ověřte integritu instalačního skriptu pomocí SHA-384 hashe:
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
SHA-384 hash je kryptografická hodnota, která slouží k ověření, že instalační skript nebyl pozměněn. Je to bezpečnostní opatření, které zajišťuje integritu stahovaného souboru.
Po spuštění předchozího příkazu byste měli obdržet zprávu o tom, že instalační skript byl ověřen. Pokud ji vidíte, můžete bez obav pokračovat:
3. Spusťte instalační skript pomocí příkazu:
php composer-setup.php
Měli byste obdržet výstup potvrzující, že Composer byl úspěšně nainstalován:
V adresáři, kde byl skript spuštěn, se objeví soubor `composer.phar`, který je spustitelným souborem Composeru.
4. Odstraňte instalační skript, protože už ho nebudeme potřebovat:
php -r "unlink('composer-setup.php');"
5. Pro globální přístup k Composeru přesuneme soubor `composer.phar` do adresáře `/usr/local/bin`, který je součástí systémové proměnné PATH. Provedete to příkazem:
sudo mv composer.phar /usr/local/bin/composer
Budete pravděpodobně vyzváni k zadání hesla.
6. Ověřte, že byl Composer úspěšně nainstalován příkazem:
composer
Pokud byl Composer správně nainstalován, měl by se zobrazit výstup podobný tomuto:
Jak používat Composer
Po instalaci Composeru můžeme začít spravovat závislosti. Jak již bylo zmíněno, Composer využívá úložiště Packagist, kde najdeme balíčky, které můžeme instalovat pomocí Composeru.
Ukážeme si, jak použít Composer k instalaci balíčku s názvem http-message, což je rozhraní popisující HTTP zprávy.
Postup pro instalaci balíčku `http-message` pomocí Composeru:
1. Vytvořte novou složku s názvem `composerDemo` a přejděte do ní:
mkdir composerDemo
cd composerDemo
2. Vytvořte soubor `.gitignore` v novém adresáři:
touch .gitignore
Tento soubor slouží k určení, které soubory se nemají sledovat pomocí Gitu.
3. Vygenerujte soubor `composer.json` pro váš projekt pomocí příkazu:
composer init
Soubor `composer.json` je konfigurační soubor pro Composer. V tomto souboru definujete metadata vašeho projektu a také seznam závislostí, které má Composer spravovat.
Předchozí příkaz vygeneruje výstup podobný následujícímu:
Průvodce vás provede procesem tvorby souboru `composer.json`. Pro přijetí navrženého názvu projektu stiskněte Enter.
4. Zadejte popis projektu a potvrďte stisknutím Enter. Můžete použít následující popis:
A demonstration of how to use PHP Composer
5. V další výzvě se vás průvodce zeptá na autora projektu. Můžete ponechat výchozí nastavení stisknutím Enter.
6. Následuje dotaz na minimální stabilitu. Stiskněte Enter pro přeskočení.
7. Dále bude průvodce požadovat typ balíčku. Zadejte `project` a stiskněte Enter:
8. V následující výzvě stiskněte Enter pro přeskočení definování licence.
9. Průvodce se vás zeptá, zda chcete specifikovat závislosti. Zadejte Ano stisknutím Enter. Následně budete vyzváni k vyhledání balíčku.
10. Do vyhledávacího pole zadejte `http-message` a stiskněte Enter. Zobrazí se výsledky vyhledávání:
Balíček, který hledáme, je první na seznamu, `psr/http-message`. Zadejte číslo `0` (nula) a stiskněte Enter.
11. Následuje výzva k zadání verze balíčku (nebo ponechání prázdné pro instalaci nejnovější verze). Pro specifikaci verze můžeme přejít na stránku balíčku v Packagist. Nejnovější verze balíčku je 2.0:
Composer automaticky aktualizuje balíčky, pokud jsou aktualizace dostupné. Nicméně nechceme, aby Composer nainstaloval verzi, která by nebyla zpětně kompatibilní s aktuální verzí v projektu. Proto pro určení verze balíčku zadáme následující:
^2.0
Toto řekne Composeru, aby nainstaloval verzi 2.0 nebo vyšší, pokud je zpětně kompatibilní.
12. Průvodce se vás zeptá na vyhledání dalšího balíčku. Pro přeskočení stiskněte Enter.
13. Dále budete vyzváni k definování závislostí pro vývojáře. Pro přeskočení stiskněte Enter, protože pro tento příklad budou stejné jako live závislosti.
14. Následně budete dotázáni na přidání mapování automatického načítání PSR-4. Stiskněte Enter pro přeskočení.
15. Zobrazí se vám náhled vygenerovaného souboru `composer.json`:
Stisknutím Enter potvrdíte vygenerování souboru.
16. Poslední výzva se vás zeptá, zda chcete instalovat definované závislosti. Pro instalaci stiskněte Enter:
17. Nyní můžete otevřít projekt v editoru kódu pomocí příkazu:
code .
Výsledkem by měl být soubor `composer.json` a nainstalované závislosti v adresáři `vendor`:
Všimněte si, že soubor `composer.json` byl vygenerován, závislosti jsou specifikovány v sekci `require` a nainstalované knihovny jsou uloženy v adresáři `vendor`.
18. Pro zabránění sledování adresáře `vendor` Gitem, upravte soubor `.gitignore` a přidejte do něj řádek:
/vendor/
Doporučuje se nesledovat tento adresář, protože může být rozsáhlý a závislosti se dají snadno znovu instalovat ze souboru `composer.json`.
19. Pro přidání další závislosti můžete upravit sekci `require` v souboru `composer.json`. Například pro přidání balíčku s názvem `log` můžete soubor upravit takto:
"require": { "psr/http-message": "^2.0", "psr/log": "^3.0.0" },
20. Pro instalaci nové závislosti do vašeho projektu spusťte příkaz v terminálu:
composer update
Výsledkem bude instalace nového balíčku:
Nyní můžete spravovat závislosti svých PHP projektů pomocí Composeru.
Jak optimalizovat Composer pro lepší správu balíčků
Pro efektivnější práci s Composerem dbejte na přesné specifikování verzí závislostí. Například jsme použili `^2.0`.
Vyhýbejte se širokým rozsahům verzí jako je `*`, které mohou vést k instalaci jakékoliv verze balíčku. To může způsobit problémy s kompatibilitou a stabilitou, protože nemůžete předvídat, kterou verzi Composer nainstaluje.
Nezapomeňte přidávat do souboru `composer.json` pouze nezbytné vlastní skripty. Nadměrné množství skriptů často vede k zbytečné režii.
Pro zrychlení Composeru povolte rozšíření PHP `curl`. Můžete také použít pluginy Composeru, jako je `hirak/prestissimo`, které paralelizují operace Composeru, a tím zrychlují instalaci balíčků.
Pravidelně čistěte mezipaměť Composeru, abyste odstranili staré a nepoužívané balíčky a optimalizovali tak jeho výkon. Nezapomeňte také nesledovat a necommitovat adresář `vendor`. To vám pomůže zrychlit klonování a aktualizaci vašich projektů.
Jak odinstalovat Composer
Pokud již Composer v Ubuntu nepotřebujete, můžete jej odinstalovat příkazem:
sudo rm -rf /usr/local/bin/composer
Odinstalaci ověříte spuštěním příkazu:
composer
Pokud byl Composer správně odinstalován, měla by se objevit chyba:
Závěr
Správa závislostí je klíčovou součástí vývoje. Efektivní správa závislostí pomáhá předcházet problémům s kompatibilitou a zajišťuje udržitelnost projektů.
Navíc umožňuje modulární vývoj softwaru a efektivní spolupráci v rámci týmu. Pokud pracujete na projektech v PHP, doporučujeme vám používat Composer k efektivní a snadné správě závislostí.
Dále si také můžete přečíst o tom, co je Ubuntu PPA a jak jej nainstalovat.